Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

une boucle limitée a 25 ??

  • Initiateur de la discussion Initiateur de la discussion yohinomura
  • 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 !

Y

yohinomura

Guest
Bonjour le Forum

voici mon problème, je désire effectuer une boucle jusqu'à ce que la cellule soit vide (ou boucler tant que la cellule ne l'est pas) et quelque soit la méthode, il ne boucle que 25 fois.

PHP:
Dim y&, z&, x&

Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True
If MsgBox(("Voulez-vous mettre à jours la feuille ?"), vbQuestion + vbYesNo, ("Confirmation")) = vbNo Then Exit Sub

x = 2
y = 3

Sheets("PrevSH").Activate
Do Until Range("A" & x).Value = "" 'ou Do while Range("A" & x).Value <> ""
Sheets("PrevSH").Activate
Sheets("PrevSH").Rows(x).Activate 'et pk Rows(x).Activate ne suffit pas
Selection.Copy
Sheets("PrevTotWagDB").Activate
Rows(y).Cells(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
x = x + 1
y = y + 1
Loop

petite précision, même si les cellules sont vides, il boucle 25 fois.

le second problème, je suis obligé d'écrire: Sheets("PrevSH").Rows(x).Activate car il me met une erreur si je ne met que: Rows(x).Activate

si une personne peut m'expliquer ou je me suis trompé ?

merci
 
Dernière modification par un modérateur:
Re : une boucle limitée a 25 ??

Bonjour yohinomura

Voici ce que j'aurais ecrit

Code:
......
for n=0 to 24
[FONT=Courier New][COLOR=#007700]'Do [/COLOR][COLOR=#0000bb]Until Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"A" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]x[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Value [/COLOR][COLOR=#007700]= [/COLOR][/FONT][FONT=Courier New][COLOR=#dd0000]"" 'ou Do while Range("A" & x).Value <> "" [/COLOR][/FONT]
[FONT=Courier New][COLOR=#dd0000]'Sheets("PrevSH").Activate [/COLOR][/FONT]
[FONT=Courier New][COLOR=#dd0000]'Sheets("PrevSH").Rows(x).Activate '[/COLOR][COLOR=#0000bb]et pk Rows[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]x[/COLOR][COLOR=#007700]).[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Activate ne suffit pas [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]If Range("A" & x + n)="" then exit for[/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Rows(x + n)[/COLOR][COLOR=#007700].[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Copy [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"PrevTotWagDB"[/COLOR][COLOR=#007700]).[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Activate [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Rows[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]y[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700]).[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Select [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Selection[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]PasteSpecial Paste[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000bb]xlPasteValues[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]Operation[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#0000bb]xlNone[/COLOR][COLOR=#007700], [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]SkipBlanks _ [/COLOR][/FONT]
[FONT=Courier New][COLOR=#007700]:=[/COLOR][COLOR=#0000bb]False[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]Transpose[/COLOR][COLOR=#007700]:=[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]False [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]CutCopyMode [/COLOR][COLOR=#007700]= [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]False [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]'x [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]x [/COLOR][COLOR=#007700]+ [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]1 [/COLOR][/FONT]
[FONT=Courier New][COLOR=#0000bb]y [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]y [/COLOR][COLOR=#007700]+ [/COLOR][/FONT][COLOR=#0000bb][FONT=Courier New]1 [/FONT][/COLOR]
[FONT=Courier New][COLOR=#0000bb]'Loop  [/COLOR][/FONT]
[COLOR=#0000bb][FONT=Courier New]next n[/FONT][/COLOR]
 
Re : une boucle limitée a 25 ??

Salut yohinomura et le forum
Code:
Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If MsgBox(("Voulez-vous mettre à jours la feuille ?"), vbQuestion + vbYesNo, ("Confirmation")) = vbNo Then Exit Sub
x = 2
y = 3
With Sheets("PrevSH")
    Do Until .Range("A" & x) = ""
        .Rows(x).Copy
        Sheets("PrevTotWagDB").Rows(y).PasteSpecial Paste:=xlPasteValues
        x = x + 1
        y = y + 1
    Loop
End With
Application.CutCopyMode = False
End Sub
Regarde ce que tu fais sur les variables locales, je pense que ça te permettra de comprendre les "erreurs" d'Excel sur ta macro.
Je pense qu'utiliser des select, surtout sur une macro automatique, ne génère que des problème (outre le ralentissement).

Juste une remarque en l'air :
Tu déclenches une macro automatique sur double-clic : ne connaissant pas le problème, difficile d'être ou non d'accord. Par contre supprimer l'édition de toutes les cellules de la feuille concernée par double-clic ne me semble pas une si bonne idée.
A+
 
Re : une boucle limitée a 25 ??

Bonjour PierreJean, Gorfael et le fil

@PierreJean: je ne désire pas une boucle qui boucle 25 fois, je me demande pourquoi la mienne ne se limite qu'a 25 et que la cellule soit vide ou non .

Mais merci de la réponse.

@Gorfael: je ne connais pas trop bien le VBA et je me contente de reprendre des morceaux de code a gauche et a droite et de les adaptés.
je test ton code et je viendrai donner le résultat sur le forum.

merci à vous 2 et au forum
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
922
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…