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

compteur de boucle

  • Initiateur de la discussion Patricia
  • Date de début
P

Patricia

Guest
Bonjour,

J'ai une macro utilisant la commande while not et wend mais elle ne boucle pas ou alors en continue - il ne faudrait y ajouter un compteur je ne sais pas comment faire qui peux m'aider...

Merci et à bientôt
 
S

steplof

Guest
Salut @ tous,

Patricia, je suis sur qu'on est plein à vouloir t'aider mais il faut peut être que tu nous en dises plus sur ta boucle...

c'est peut être tout simplement qu'elle est mal montée . Faut vérifier ta condition...
( ta condition n'est jamais atteinte : ta boucle s'exécute indéfiniment),
si elle l'est toujours ta boucle ne s'éxécute pas.

Si un compteur te suffit, ptetre pas besoin de while not...

enfin faut juger sur pièces.

@ bientôt
Steplof.
 
B

Bodin

Guest
Salut Steplof,

Tout d'abord merci d'avoir répondu, Voilà ce que je voudrai...

J'ai deux classeurs ... le 1er XXX est une base de données avec plusieurs champs, par exemple : Nom - Adresse - Métier - Nationalité - Age...

Dans un deuxième classeur YYY, je dois remplir des formulaires (déjà pré-conçu, je ne peux pas y toucher sauf, y ajouter des lignes).

Ma condition est :
soit : tant que tu trouvesdans la feuille XXX, dans la colonne A:A = bébél, tu prends la 2 et 4 cellules de la ligne et ainsi de suite jusqu'à ce qu'il n'y ait plus de bébél et tu vas copier le résultat dans le tableau de la feuille YYY en y ajoutant le nombre de lignes nécessaires.
soit : tant que dans la colonne A:A la cellule n'est pas vide, tu prends la 2 et 4 cellules de la ligne et ainsi de suite jusquà ce que la cellule soit vide et tu vas copier le résultat dans la tableau de la feuille YYY en y ajoutant le nombre de lignes nécessaires.

J'ai réussi par while not et Wend mais ma condition soit elle boucle en continu soit elle ne fait l'action qu'une fois. Alors si tu as une solution, je suis preneur - j'ai également essayé par le filtre élaboré mais mon souci est que je ne peux pas deviner à l'avance le nombre de lignes à copier dans la deuxème feuille ...

Je te remercie d'avance et te souhaite une bonne soirée
Patricia
 
S

steplof

Guest
Salut à tous,

Patricia je vois assez bien ton souci,
par contre j'ai un peu de mal à réfléchir sans tester (suis pas encore assez bon) et j'ai la flemme de "monter" 2 classeurs qui simuleraient ton prob...

ça me semble être juste un souci de report avec divers tests qui peuvent se faire de plusieurs manières. (While not en est une mais for to combiné avec des if peut aussi en être une autre apparemment).

Si tu pouvais m'envoyer deux extraits de tes classeurs (5-10 lignes suffiraient) avec des données bidon, je peux regarder ça de plus près...

@ bientôt
Steplof
 
M

Mytå

Guest
Re bonsoir le forum

Un macro vite fait a voir si tu peux l'utiliser selon tes gouts

Sub copier_suite()
Dim position As Byte, ligne As Double
Dim i As Double, valeur As Variant
Workbooks.Open Filename:="C:\yyy.xls"
Windows("xxx.xls").Activate
For i = 2 To Sheets("Feuil1").Range("a65535").End(xlUp).Row
If Cells(i, 1) <> "" Then
Range("A" & i & ",B" & i & ",D" & i).Select
Windows("yyy.xls").Activate
position = 1
ligne = Sheets("Feuil1").Range("a65535").End(xlUp).Row + 1
Sheets("Feuil1").Rows(ligne & ":" & ligne).Insert Shift:=xlDown
For Each valeur In Selection
Sheets("Feuil1").Cells(ligne, position) = valeur
position = position + 1
Next valeur
End If
Windows("xxx.xls").Activate
Next i
End Sub

A suivre
 
P

Patricia

Guest
Mytå bonjour,

J'ai essayé ta boucle mais elle bloque au niveau du For i, je sèche un peu ... toujours est-il je te remercie d'avoir essayé...
Pour ta 1ere question, je voudrai extraire les données par ligne...

Merci et bonne journée.

Patricia
 
M

Mytå

Guest
Re Patricia

Essaye sur le meme classeur feuille1 vers feuille3 ("Sheet1" "Sheet3")

Sub copier_suite()
Dim position As Byte, ligne As Double
Dim i As Double, valeur As Variant
For i = 2 To Sheets("Feuil1").Range("a65535").End(xlUp).Row
If Cells(i, 1) <> "" Then
Range("A" & i & ",B" & i & ",D" & i).Select
position = 1
ligne = Sheets("Feuil3").Range("a65535").End(xlUp).Row + 1
Sheets("Feuil3").Rows(ligne & ":" & ligne).Insert Shift:=xlDown
For Each valeur In Selection
Sheets("Feuil3").Cells(ligne, position) = valeur
position = position + 1
Next valeur
End If
Next i
End Sub

Mytå
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…