XL 2016 formule vba

Guismo33

XLDnaute Occasionnel
Bonjour a tous,
On ma gentiment donner une forme Vba qui est :

Sub Enjeu()
Dim lig As Long, col As Integer
With Sheets("Résultat")
lig = .Cells(Rows.Count, "A").End(xlUp).Row + 1
.Cells(lig, "A").Value = ActiveSheet.Range("C1").Value
.Cells(lig, "B").Value = Date
col = 4
While ActiveSheet.Cells(7, col + 4) <> ""
.Cells(lig, col + 4).Value = ActiveSheet.Cells(8, col + 4).Value 'synthese
col = col + 1
Wend
End With

Mon soucis c'est quelle me retourne que 5 colonnes sur même ligne et j' en voudrais 8,
j'ai beau chercher je n'arrive pas trouver comment augmenter le nombre de colonnes.

merci a vous

Bien à vous
 

Iznogood1

XLDnaute Impliqué
Bonjour,

Tout dépend du contenu de la feuille depuis laquelle tu exécutes le code.

Décryptons :
Code:
col = 4
While ActiveSheet.Cells(7, col + 4) <> ""

Tant que la cellule à l'interséction de la ligne 7 et de la colonne "col+4" (donc 8) n'est est pas vide,
je fais une action, puis j'incrémente la valeur de col (qui devient donc 5)

Je recommence :
Tant que la cellule à l'interséction de la ligne 7 et de la colonne "col+4" (donc 9) n'est est pas vide,
...

Donc si ta boucle s'arrête au bout de 5 colonnes, je parie qu'il n'y a pas de valeur dans ta 6ème colonne.

Si tu veux faire une boucle retournant 8 colonnes, utilise For .. Next plutôt que While
Code:
Dim i as integer
For i = 8 to 16
Worksheets("Résultat").Cells(lig, i).Value = Cells(8, i).Value
Next i
 

Discussions similaires

Réponses
25
Affichages
843

Statistiques des forums

Discussions
312 215
Messages
2 086 332
Membres
103 188
dernier inscrit
evebar