boucle + evenement + incrementer [NOOB]

  • Initiateur de la discussion Initiateur de la discussion Flop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Flop

XLDnaute Occasionnel
Bonjour à tous.


je veux faire un truc tout simple mais je n'y arrive pas.. je connais un peu vba, mais pas du tout les boucles.
je vous explique le très simple et apres je me demerde
soit une plage
B2:H3
que je veux recopier en
B5:H6
et ceci la premiere fois, apres je veux que selon le choix de l'utilisateur par msgbox on continu ou on arrete.

si on continue alors

je recopie B2:H3 mais sur B8:H9


B5:H6 s'increment à chaque boucle pour ne jamais recopier au meme endroit

Merci d'avance de votre aide précieuse.

j'aimerais juste le code la boucle, pour reussir à avancer un peu.
 
Re : boucle + evenement + incrementer [NOOB]

Salut Flop,

Dans un module tu mets le code suivant :
Code:
Sub CopieLigne()
  Sheets(1).Range("B2:H3").Copy Destination:=Sheets(1).Range("B5")
  Do While MsgBox("Voulez-vous continuer ?", vbQuestion + vbYesNo) = vbYes
    Sheets(1).Range("B2:H3").Copy Destination:=Sheets(1).Range("B" & Sheets(1).Range("B65535").End(xlUp).Row + 2)
  Loop
End Sub

Voilà 😉
 
Re : boucle + evenement + incrementer [NOOB]

bonjour Flop

une solution (parmi d'autres)

Code:
Option Explicit
Sub test()
Dim ligne As Integer
Dim reponse As Integer
ligne = 5
Range("B2:H3").Copy
reponse = MsgBox("on copie ? ", vbYesNo)
While reponse = 6
Cells(ligne, 2).Select
ActiveSheet.Paste
ligne = ligne + 3
reponse = MsgBox("on copie encore ? ", vbYesNo)
Wend
Application.CutCopyMode = False
End Sub

edition : salut Bruno45 (bien plus concis !!!)
 
Dernière édition:
Re : boucle + evenement + incrementer [NOOB]

merci à tous pour vos réponses.. mais en fait je me rend compte que j'ai très mal expliqué mon projet et votre code qui marche très bien et délicat pour moi à adapter..

je vous explique mieux


on est sur sheet(1)

-> l'utilisateur colle le "presse papier" dans la celule A1
-> la macro se déclenche.

ca j'ai trouvé le code.

ensuite :

-> la macro fait son boulot......
-> évenement > msgbox "encore des copies à inserer ?
-> quand je clique oui plus de message box, je refais un coller du presse papier "d'autre données"
-> la macro fais le meme boulot que précédemment si ce n'est quelle ne colle pas au meme endroit

et ceci autant de fois que nécessaire, quand je clique sur non tout s'arrete.

donc je viens d'adapter le code de brunoM45, tout serais ok si ce n'est qu'il faudrait qu'apres le message demandant si on veut continuer, la macro me rende la main, pour pouvoir me laisser le temps de faire un autre coller.

J'espere etre plus clair cette fois ci dans ma demande.. encore merci..


pour info voici le code que j'ai trouver pour déclencher la macro dés que mon "coller" est fait :
Code:
Option Explicit
Option Compare Text 'insensible à la casse de caractères
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If (Target.Column = 1) Then
    Select Case Target.Row
       Case 1

   End Select
  End If
End Sub

voila en terme de dessin ce que ca devrait donner :

http://img142.imageshack.us/my.php?image=boucleaf8.jpg
 
Dernière édition:
Re : boucle + evenement + incrementer [NOOB]

BrunoM45 à dit:
Flop,

Peut-être comme dans le classeur joint !

a+


je comprends pas vraiment comment tout marche..

j'ai modifier un peu ton classeur, et je t'ai mis ce que j'espere une explication très claire.
Je te remercie vraiment de ton aide. c'est un programme important pour moi.

Merci encore.
 

Pièces jointes

Re : boucle + evenement + incrementer [NOOB]

en fait, j'en ai pas parler, car je voulais pas trop embeter et je pensais pouvoir reussir à me débrouiller..

par contre est ce que tu peux m'expliquer.. y une chose que je comprends pas.

Code:
Sheets("Insertion").Range("B2:H" & Sheets("Insertion").Range("B65535").End(xlUp).Row).Copy _
    Destination:=Sheets("Tableau").Range("B" & Sheets("Tableau").Range("B65535").End(xlUp).Row + 2)

je comprends pas la formule. pourquoi Range("B65535") dans la plage qu'il doit copier.
comment la forumle définie l'adresse ou il doit coller dans "tableau" si je veux faire les coller à partir de B8 par exemple..
merci d'avance de tes explication, je teste le fichier, ca correspond à ce que je voulais.. merci beaucoup.. 🙂

------------------------------------------------------------------------------------

J'ai encore un souci, pour redemmarer, je suis obliger de réouvrir le classeur, je te joins un fichier ou il y a ton code dans le ThisWorkbook et mon code dans la feuille 1. bien sur les 2 sont incompatibles.. et je n'arrive pas a les "mélanger" !! merci encore une fois de ton aide.. aprés, promis je t'êmbete plus !! 🙂
 

Pièces jointes

Dernière édition:
Re : boucle + evenement + incrementer [NOOB]

Flop à dit:
je comprends pas la formule. pourquoi Range("B65535") dans la plage qu'il doit copier. Comment la formule définie l'adresse ou il doit coller dans "tableau" si je veux faire les coller à partir de B8 par exemple..
merci d'avance de tes explication, je teste le fichier, ca correspond à ce que je voulais.. merci beaucoup..

Salut Flop,

En fait le code
Code:
Sheets("Insertion").Range("B65535").End(xlUp)
Permet à Excel de rechercher la première cellule remplie à partir de la dernière cellule de la colonne.
C'est comme si tu faisait CTRL+Flèche vers le HAUT
Et donc de cette cellule tu récupère le numéro de ligne ".row" et tu ajoutes 2

J'ai encore un souci, pour redemmarer, je suis obliger de réouvrir le classeur, je te joins un fichier ou il y a ton code dans le ThisWorkbook et mon code dans la feuille 1. bien sur les 2 sont incompatibles.. et je n'arrive pas a les "mélanger" !! merci encore une fois de ton aide.. aprés, promis je t'êmbete plus !! 🙂
Dans ton Module 1, j'ai mis la ligne
Code:
CopieOK = True
qui permet de dire à la macro que la macro de copie est active.

Mais il faut au moins lancer ton module 1 !?

Si le reste du code je l'ai mis dans ton code de la Feuil1

Voilà 😉
Bon courage A+
 

Pièces jointes

Re : boucle + evenement + incrementer [NOOB]

coucou.. je crois que je vais te remercier à chacun de mes posts 😀

2 hic pour mon utilisation.

je lance la mise en forme, puis je modifie la 1er cellule et la ok ca marche, juste un bug !

Code:
On n'exécute pas la procédure si la feuille n'est pas "Insertion"
If Sh.Name <> "Insertion" Then Exit Sub
Code:
Erreur d'exécution '424'
Objet Requis
j'ai contourner ce probléme en mettant la ligne en commentaire..

juste une modif STP, il faudrait que la macro mise en forme ce lance en modifiant la 1er cellule
dans tous les cas, l'élement déclencheur doit etre la 1er cellule.

J'ai essayer 2/3 trucs, mais je n'y arrive pas.

Je t'explique tout sur le fichier (4)
 

Pièces jointes

Re : boucle + evenement + incrementer [NOOB]

Bonsoir Flop,

Désolé de ne pas avoir trop suivi, mais je suis en plein bilan trimestriel
pc.gif


Du coup, je t'avais préparé un fichier hier soir, mais j'ai oublié de te le mettre sur le forum 😱

On n'exécute pas la procédure si la feuille n'est pas "Insertion"
If Sh.Name <> "Insertion" Then Exit Sub
Erreur d'exécution '424'
Objet Requis​
Effectivement, j'avais copié le code de ThisWorkbook directement dans la Feuil1, donc Sh n'existe pas dans la Sub !

Voilà c'est réglé 😉

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
1
Affichages
1 K
Lucien31
L
M
Réponses
0
Affichages
1 K
M
C
Réponses
7
Affichages
2 K
C
Réponses
1
Affichages
1 K
Compte Supprimé 979
C
Réponses
4
Affichages
1 K
B
Réponses
8
Affichages
2 K
between
B
Retour