Choix boucles VBA Excel(Do While, Loop...For
kikou
-
kikou -
kikou -
Bonjour,
j'espère que tu pourras venir à mon soutien. Je galère avec VBA Excel. je suis débutante et je ne m'en sors pas.
Mon problème se situe avec les boucles, je ne sais laquelle utiliser. Je souhaite faire défilé les colonnes d'une feuille et je n'y arrive pas. Ci-dessus, tous les éléments pour comprendre.
J'ai une feuille avec une liste de la sorte:
feuille ("ListHVC"):
grand magasin (colonneA) 1er petit magasin (colonne B) 2eme petit magasin (colonne C) ect...
correspondant au grand magasin de la colonne A
A Novo Digicom (1361) xDRSL/UK A N
Fone Logistics (1363) DRSL/UK Fone
Total Repair Solutions (1371) xDRSL/UK Total
Carphone Warehouse (1373) DRSL/UK Carphone
SL/UK Kuehne SL/UK Kuehne & N ACR Logistics(Kue
MPRC UK (1374) xDRSL/UK MPR
SL/UK Sacel IRL - out SL/UK SACEL Polska in
Ce que je veux:
quand je sélectionne un grand magasin (récupéré par le numéro de la ligne par la variable: Ligne), je souhaite parcourir les colonnes à partir de la colonne B et correspondant au grand magasin. Dans le code ci-dessus, la varible "j" me permet de faire défiler les colonnes.
Quelle boucle dois-je utiliser?
Voici mon code qui ne fonctionne avec Do While...
Dim j As Integer
Dim ligne As Integer
j = 2
ligne = Sheets("ListSLs").Range("e2")
Do While Sheets("ListSLs").Cells(ligne, j) <> "" '!!!MON PROBLEME EST ICI!!!!
'ensuite faire les actions suivante #NORMALEMENT CELA FONCTIONNE TRES BIEN
'----------------------------------------------------------------------------------------
' * CREATION OF THE MASTER *
'----------------------------------------------------------------------------------------
'Copy of the overview in another sheet
Sheets("OVcube").Select
Range("C1:AB100").Select
Selection.Copy
Sheets("OVmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the TOP10cube in another sheet
Sheets("TOP10cube").Select
Range("G1:AB100").Select
Selection.Copy
Sheets("TOP10master").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the SCcube in another sheet
Sheets("SCcube").Select
Range("A1:AB100").Select
Selection.Copy
Sheets("SCmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the SPcube in another sheet
Sheets("SPcube").Select
Range("B22:AB100").Select
Selection.Copy
Sheets("SPmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'----------------------------------------------------------------------------------------
' * CREATION OF A FILE FOR THE LMU *
'----------------------------------------------------------------------------------------
'To rename all the sheets in order to have any problem if we do the loop again
Worksheets(Array("OVmaster", "TOP10master", "SCmaster", "SPmaster")).Copy
Sheets("OVmaster").Select
Sheets("OVmaster").Name = "Overview (" & j & ")"
Sheets("TOP10master").Select
Sheets("TOP10master").Name = "TOP10 (" & j & ")"
Sheets("SCmaster").Select
Sheets("SCmaster").Name = "Symptom-codes (" & j & ")"
Sheets("SPmaster").Select
Sheets("SPmaster").Name = "TOP Spare parts (" & j & ")"
j = j + 1
Loop
Je vous remercie beaucoup pour votre aide, je cherche depuis un bout de temps et je ne sais pas ce qu'il ne fonctionne pas. C'est pas facile qt on est débutant!
j'espère que tu pourras venir à mon soutien. Je galère avec VBA Excel. je suis débutante et je ne m'en sors pas.
Mon problème se situe avec les boucles, je ne sais laquelle utiliser. Je souhaite faire défilé les colonnes d'une feuille et je n'y arrive pas. Ci-dessus, tous les éléments pour comprendre.
J'ai une feuille avec une liste de la sorte:
feuille ("ListHVC"):
grand magasin (colonneA) 1er petit magasin (colonne B) 2eme petit magasin (colonne C) ect...
correspondant au grand magasin de la colonne A
A Novo Digicom (1361) xDRSL/UK A N
Fone Logistics (1363) DRSL/UK Fone
Total Repair Solutions (1371) xDRSL/UK Total
Carphone Warehouse (1373) DRSL/UK Carphone
SL/UK Kuehne SL/UK Kuehne & N ACR Logistics(Kue
MPRC UK (1374) xDRSL/UK MPR
SL/UK Sacel IRL - out SL/UK SACEL Polska in
Ce que je veux:
quand je sélectionne un grand magasin (récupéré par le numéro de la ligne par la variable: Ligne), je souhaite parcourir les colonnes à partir de la colonne B et correspondant au grand magasin. Dans le code ci-dessus, la varible "j" me permet de faire défiler les colonnes.
Quelle boucle dois-je utiliser?
Voici mon code qui ne fonctionne avec Do While...
Dim j As Integer
Dim ligne As Integer
j = 2
ligne = Sheets("ListSLs").Range("e2")
Do While Sheets("ListSLs").Cells(ligne, j) <> "" '!!!MON PROBLEME EST ICI!!!!
'ensuite faire les actions suivante #NORMALEMENT CELA FONCTIONNE TRES BIEN
'----------------------------------------------------------------------------------------
' * CREATION OF THE MASTER *
'----------------------------------------------------------------------------------------
'Copy of the overview in another sheet
Sheets("OVcube").Select
Range("C1:AB100").Select
Selection.Copy
Sheets("OVmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the TOP10cube in another sheet
Sheets("TOP10cube").Select
Range("G1:AB100").Select
Selection.Copy
Sheets("TOP10master").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the SCcube in another sheet
Sheets("SCcube").Select
Range("A1:AB100").Select
Selection.Copy
Sheets("SCmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy of the SPcube in another sheet
Sheets("SPcube").Select
Range("B22:AB100").Select
Selection.Copy
Sheets("SPmaster").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues
'----------------------------------------------------------------------------------------
' * CREATION OF A FILE FOR THE LMU *
'----------------------------------------------------------------------------------------
'To rename all the sheets in order to have any problem if we do the loop again
Worksheets(Array("OVmaster", "TOP10master", "SCmaster", "SPmaster")).Copy
Sheets("OVmaster").Select
Sheets("OVmaster").Name = "Overview (" & j & ")"
Sheets("TOP10master").Select
Sheets("TOP10master").Name = "TOP10 (" & j & ")"
Sheets("SCmaster").Select
Sheets("SCmaster").Name = "Symptom-codes (" & j & ")"
Sheets("SPmaster").Select
Sheets("SPmaster").Name = "TOP Spare parts (" & j & ")"
j = j + 1
Loop
Je vous remercie beaucoup pour votre aide, je cherche depuis un bout de temps et je ne sais pas ce qu'il ne fonctionne pas. C'est pas facile qt on est débutant!
A voir également:
- Choix boucles VBA Excel(Do While, Loop...For
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Liste déroulante de choix excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Salut,
tes explications sont difficile à cerner mais voila une macro qui sélectionne la cellule A700 et remonte d'une cellule tant que la cellule contient une données elle remonte jusqu'a ce qu'elle rencontre une cellule vide
Sub test()
Range("A700").Select
ActiveCell.Offset(-1, 0).Select
Do While ActiveCell.Value <>""
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
ici la cellule remonte tant qu'elle rencontre des cellule vide ou des valeurs =0 jusqu'a ce qu'elle rencontre une cellule contenant queque chose ou le mot fin pour s'arrêter
Sub test()
Range("A700").Select
ActiveCell.Offset(-1, 0).Select
Do While ActiveCell.Value <=0
ActiveCell.Offset(-1, 0).Select
Loop
If ActiveCell = "fin" Then
Exit Sub
End If
End Sub
________________________________________________________________________
Vous cherchiez de l’aide. Les membres du forum, bénévolement étaient à vos côtés.
Ayez la gentillesse de nous dire si votre problème est résolu. Afin de classer la
Demande.
tes explications sont difficile à cerner mais voila une macro qui sélectionne la cellule A700 et remonte d'une cellule tant que la cellule contient une données elle remonte jusqu'a ce qu'elle rencontre une cellule vide
Sub test()
Range("A700").Select
ActiveCell.Offset(-1, 0).Select
Do While ActiveCell.Value <>""
ActiveCell.Offset(-1, 0).Select
Loop
End Sub
ici la cellule remonte tant qu'elle rencontre des cellule vide ou des valeurs =0 jusqu'a ce qu'elle rencontre une cellule contenant queque chose ou le mot fin pour s'arrêter
Sub test()
Range("A700").Select
ActiveCell.Offset(-1, 0).Select
Do While ActiveCell.Value <=0
ActiveCell.Offset(-1, 0).Select
Loop
If ActiveCell = "fin" Then
Exit Sub
End If
End Sub
________________________________________________________________________
Vous cherchiez de l’aide. Les membres du forum, bénévolement étaient à vos côtés.
Ayez la gentillesse de nous dire si votre problème est résolu. Afin de classer la
Demande.
je cherche une boucle me permettant de
tant que la cellule (ligne, j) <> "" alors Faire
Sachant que le j correspond aux colonnes et qu'il doit s'incrementer.
Dans mon exemple, j'ai utilisé DOWhile mais je n'en sais rien....
Est ce plus clair?
je te remercie d'avance de ton aide. J'avoue je ne suis pas très compétente en info. :(
Kikour
range(ligne, j).value <> ""
comme condition?
Tu devrais faire
j = 2
do while Activesheet.range("e2").offset(0,j).value <> ""
...
j=j+1
loop