Valeur cellule avec boucle do while
g
Bonjour à tous
voici mon code qui fonctionne
Dim i As Integer
Dim i2 As Integer
i = 2
i2 = 3
Do While Cells(i, 1).Value <> ""
If Worksheets("Feuil1").Range("A" & i) = "A" Then Worksheets("Feuil2").Range("A" & i2) = "vrai"
i = i + 1
i2 = i + 1
Loop
je n'arrive pas a lui "dire" de copier la réponse vrai non pas sur la colonne A mais sur la ligne 2 a partir de la colonne c "C2"
merci de votre aide
Greg
Bonjour Greg, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim F1 As Worksheet 'déclare la variable F1
Dim F2 As Worksheet 'déclare la variable F2
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
Dim COL As Integer 'déclare la variable COL (COLonne)
Set F1 = Worksheets("Feuil1") 'définit l'onglet F1
Set F2 = Worksheets("Feuil2") 'définit l'onglet F2
DL = F1.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet F1
COL = 3 'initialise la variable COL (3 = Colonne C)
For I = 2 To DL 'boucle sur toutes les lignes I de 2 à DL
'si la valeur de la cellule ligne I colonne A de l'onglet F1 est égale à "A",
'renvoie "vrai"dans la cellule ligne 2 colonne COL de l'onglet F2
If F1.Cells(I, 1).Value = "A" Then F2.Cells(2, COL).Value = "vrai"
COL = COL + 1 'incrémente la colonne COL
Next I 'prochaine ligne de la boucle
End Sub
g
Re ,
merci ThauThème çà fonctionne très bien, j'ai légèrement modifier le code pour remplacer la feuil 2 par un classeur.
Je mets le code si ça peut servir à d'autre
Set WB = ActiveWorkbook
thefile = Application.GetOpenFilename
Set WB2 = Workbooks.Open(thefile)
Dim F1 As Worksheet 'déclare la variable F1
Dim F2 As Worksheet 'déclare la variable F2
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
Dim COL As Integer 'déclare la variable COL (COLonne)
Set F1 = WB.Sheets("Feuil1") 'définit l'onglet F1
Set F2 = WB2.Sheets("Feuil1") 'définit l'onglet F2
DL = F1.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet F1
COL = 3 'initialise la variable COL (3 = Colonne C)
For I = 2 To DL 'boucle sur toutes les lignes I de 2 à DL
'si la valeur de la cellule ligne I colonne A de l'onglet F1 est égale à "A",
'renvoie "vrai"dans la cellule ligne 2 colonne COL de l'onglet F2
' If F1.Cells(I, 1).Value = "A" Then F2.Cells(2, COL).Value = "vrai"
'If F1.Cells(I, 1).Value = "A" Then F2.Cells(3, COL).Value = "vrai"
If F1.Cells(I, 1).Value = "B" Then F2.Cells(2, COL).Value = "faux"
' If F1.Cells(I, 1).Interior.ColorIndex = 1 Then F2.Cells(2, COL).Value = "jjjjjj"
COL = COL + 1 'incrémente la colonne COL
Next I 'prochaine ligne de la boucle
Merci encore pour t'on aide
Greg