Appliquer une consigne à un nombre de ligne variable

Résolu/Fermé
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016 - 24 sept. 2016 à 07:18
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016 - 25 sept. 2016 à 06:35
Bonjour à tous,
Je suis nouveau ici. Je bloque depuis plusieurs jours sur ceci :
Je voudrais demander à Excel de mettre une valeur dans plusieurs cellules consécutives. De la cellule A5 par exemple à la cellule A10. La variable est le nombre de ligne qui proviendrait d'un autre calcul. Cela pourrait donc être de A5 à A18 avec un nombre de ligne = 19. Est il possible de réaliser cette manoeuvre sans utiliser de macro que je manipule très très peu et surtout très très mal ?
Par avance merci pour vos propositions
Bonne journée.





A voir également:

7 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
24 sept. 2016 à 07:57
Bonjour,

certainement une possibilité par simple formule, mais il faudrait comprendre la demande et voir la structure de ton fichier et surtout les formules que tu as en colonne A
pour joindre ton exemple de fichier anonymisé
1) Clic sur ce lien https://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse
0
Utilisateur anonyme
24 sept. 2016 à 09:16
Bonjour Rominet83,

Il y a une erreur dans l'énoncé de ton exercice :

De A5 à A18, ça fait 14 lignes, pas 19 ;
ou alors pour 19 lignes : de A5 à A23

Je ne vois pas comment faire ce que tu demandes sans macro !
En supposant que ton nombre de lignes est en cellule C3 (choisi
au hasard, puisque non indiqué), code VBA correspondant :


Option Explicit

Sub Essai()
  Dim col As Integer, lig1 As Long, lig2 As Long
  col = 1: lig1 = 5       ' colonne A ; 1ère ligne = ligne 5
  lig2 = lig1 + [C3] - 1  ' calcul lig2 (dernière ligne)
  Range(Cells(lig1, col), Cells(lig2, col)) = 10.75
End Sub


Affectation de la même valeur numérique : 10,75
Tu peux mettre "mon texte" à la place de 10.75 :

  Range(Cells(lig1, col), Cells(lig2, col)) = "mon texte"

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊
 
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
24 sept. 2016 à 09:44
Re le fil,

je crois que le demandeur avait précisé
Est il possible de réaliser cette manoeuvre sans utiliser de macro
0
Utilisateur anonyme > Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024
24 sept. 2016 à 10:02
 
Bonjour Mike-31,

Exact, et je l'avais bien vu ! C'est pourquoi j'ai précisé, moi, juste avant :
« Je ne vois pas comment faire ce que tu demandes sans macro ! ».

Donc sachant cela, si le demandeur change d'avis et accepte les macros,
il aura de suite la solution que je lui propose, ce qui est tout de même
mieux que rien du tout, n'est-ce-pas ?  😉

D'autant plus que c'est une solution à la fois courte, facile et rapide à faire !
Mais peut-être un autre intervenant trouvera une solution sans macro ?

Cordialement.  😊
 
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 24/09/2016 à 10:00
Bonjour,

Sélectionne ta plage, le nombre de lignes est indiqué dans la zone Référence en haut à gauche lorsque tu glisses la souris.
Ou bien tu saisis la plage dans la zone Référence ainsi : B4:B223 et tu valides
Puis saisir ta valeur et valider avec Shift+Ctrl+Entrée
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
 
Bonjour eriiic,

Juste avant mon message #2, j'avais songé à proposer cette solution :

Sélectionner manuellement la plage de cellules, par exemple de A5 à A18 ;
entrer la valeur (numérique ou texte) puis faire < Ctrl >< Entrée >
(pas < Ctrl >< Shift >< Entrée >) ; fais l'essai : tu verras que ça marche !  😉

Mais j'ai renoncé à indiquer cette solution car le demandeur a bien précisé :
« La variable est le nombre de lignes qui proviendrait d'un autre calcul. »,
et comme manifestement Rominet83 n'utilise pas de macros, le nombre
de lignes (qui provient d'un autre calcul) n'est pas dans une variable VBA
mais dans une cellule X (la référence n'est pas indiquée, c'est pourquoi
dans mon code VBA, j'ai choisi C3 tout à fait au hasard). Ce sera au
demandeur de tout adapter : col, lig1, C3, valeur à affecter.

Cordialement.  😊


PS : J'espère que tu as réussi à faire les mises à jour de ton Windows 7 !  😉

C'est vraiment la croix et la bannière, pour arriver à un Windows 7
enfin à jour ! Quelle joie quand tu as enfin le bouclier vert !

Sinon, je te laisse lire mon message #14 pour jolya, qui a enfin pu
résoudre son problème ! Si besoin, j'espère que ça t'aidera !  😊
 
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
24 sept. 2016 à 11:48
Bonjour,

Oui, à la 3ème tentative j'ai enfin trouvé ce qui mettait le boxon.
C'est la maj KB3179930 qui faisait planter windows update ensuite.

Mais j'ai renoncé à indiquer cette solution car le demandeur a bien précisé :
« La variable est le nombre de lignes qui proviendrait d'un autre calcul. »

Si besoin est rien ne l'empêche de se fabriquer une chaine style B3:B45 à partir de ce résultat et la copier-coller dans la zone ref s'il ne veut pas faire l'addition de tête.
eric
0
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016
24 sept. 2016 à 18:26
https://www.cjoint.com/c/FIyqxSIlCFF

Voici un résumé de mon fichier.
Merci à vous tous qui avez déjà planché sur mon sujet.
Bien cordialement
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 24/09/2016 à 19:15
Pas besoin de ton fichier, j'ai testé ma proposition avant de poster.
Teste ce qu'on te propose et fait un retour, on ne va pas venir te tenir la main pour le faire...
0
Utilisateur anonyme > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
Modifié par albkan le 24/09/2016 à 21:03
 
Bonsoir eriiic, j'espère que tu ne m'en voudras pas d'avoir aidé Rominet83 !
D'autant plus qu'en fait, c'était bien plus que simplement "lui tenir la main" !
Tu peux bien sûr télécharger le fichier Excel 2007 que je lui ai transmis,
et regarder toi aussi mon code VBA. Bonne lecture au cas où !  😊

PS : J'ai bien lu ton message #7, et je suis bien content que ton Windows 7
soit enfin à jour ! Super nouvelle !!!  😉
 
0
Utilisateur anonyme
24 sept. 2016 à 20:44
 
Bonsoir Rominet,

J'ai cru au départ, comme eriiic, qu'il était inutile de regarder ton fichier.

Finalement, je l'ai quand même téléchargé, pour voir au cas où ; et j'ai
trouvé ton exercice très intéressant à faire !

Voici donc ma solution : Fichier Excel 2007 (*.xlsm car avec macros)

Ouvres le fichier et regardes bien que sur ta feuille de calcul, les cellules
de destination sont vides (comme au départ) ; fais < Ctrl >< e > : fini :
la copie que tu voulais est faite !  😉  C'est chouette le VBA, pas vrai ?

Fais < Alt >< F11 > : tu es maintenant sur Microsoft Visual Basic (sans avoir
quitté Excel) et tu peux voir la feuille du Module1 qui contient mon code VBA.

Pour retourner à Excel sans fermer Visual Basic : < Alt >< F11 > de nouveau.
Pour retourner à Excel en quittant Visual Basic : < Alt >< q >.

Dis-moi si ça te convient, et ce que tu en penses.

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊


PS : J'espère que c'est pas toi qui a essayé de manger Titi le canari !  😉
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016
24 sept. 2016 à 21:20
Merci beaucoup,
Nous sommes effectivement sur la bonne voix. C'est une macro mais je pense que je pourrais la modifier pour passer aux 3 autres étapes.
J'avais oublié de préciser une chose : le fichier commandé par la position B
Doit prendre la suite du fichier commandé par A
A = 15 lignes, B doit commencer à la 16 ième ligne.
Je suis persuadé que les macros sont d'une utilisation merveilleuse.
Je viens d'acheter un livre qui en explique le fonctionnement mais c'est ardu de commencer cela à 65 ans !! Je suis malgré tout totalement passionné. j''y passe des journées complètes et une bonne partie des nuits.
Merci beaucoup
0
 
Si tu as 65 ans, tu connais sûrement le dessin animé « Titi et Gros Minet » :
le canari et le chat qui essaye toujours de l'attraper, avec la grand-mère
qui survient parfois pour sauver Titi au dernier moment ! D'où mon PS,
car ton pseudo est phonétiquement très proche de « Gros Minet ».  😉

Bravo pour te mettre au VBA à ton âge ! C'est bien courageux ! Si tu réussis,
j'essayerai de voir si j'ai pas quelque part une médaille à te décerner !  😉

Pour l'exercice, je te laisse d'abord essayer de le faire toi-même ; si tu y arrives,
tant mieux ; sinon, envoies-moi ton fichier via cjoint.com, mais quand tu auras
ajouté toutes les lignes nécessaires !

PS : J'ai oublié de te dire que si tu es content du fichier *.xlsm, tu peux alors
supprimer ton fichier *.xlsx (qui ne servira plus). C'est mieux d'éviter que
des fichiers inutiles s'accumulent sur le disque dur de ton PC, n'est-ce-pas ?
 
0
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016
25 sept. 2016 à 06:25
Bonjour ALBKAN
Merci beaucoup pour ton travail.
Aujourd'hui je suis pas mal occupé. Je vais tenter dans les jours qui viennent de digérer ta macro, et surtout de l'intégrer à mon tableau total.
Je ne manquerai pas de revenir vers toi quand des obstacles insurmontables pour moi se mettront en travers de mon chemin.
Je te souhaite un très agréable dimanche.
Bien cordialement.
0
Rominet83 Messages postés 5 Date d'inscription samedi 24 septembre 2016 Statut Membre Dernière intervention 25 septembre 2016
25 sept. 2016 à 06:35
Merci à tous pour votre implication.
Je serai vraisemblablement de retour ici sous peu.
Bonne journée.
0