Existe-t'il un Double For?
VB1
-
VB1 -
VB1 -
Bonjour,
Je voudrais savoir s'il étant possible de faire un double For sur une seule ligne pour permettre le changement de plusieurs lignes en même temps.
Voici le code que j'ai testé mais qui ne modifie les lignes q'un For après l'autre rendant les résultats faux.
With ThisWorkbook.Sheets("")
For Ligne = 53 To 59
For Ligne2 = 40 To 46
.Range("B" & Ligne) = .Range("B" & Ligne2) - .Range("C" & Ligne2)
.Range("C" & Ligne) = .Range("C" & Ligne2) - .Range("D" & Ligne2)
.Range("D" & Ligne) = .Range("D" & Ligne2) - .Range("E" & Ligne2)
.Range("E" & Ligne) = .Range("E" & Ligne2) - .Range("F" & Ligne2)
.Range("F" & Ligne) = .Range("F" & Ligne2) - .Range("G" & Ligne2)
.Range("G" & Ligne) = .Range("G" & Ligne2) - .Range("H" & Ligne2)
.Range("H" & Ligne) = .Range("H" & Ligne2) - .Range("I" & Ligne2)
.Range("I" & Ligne) = .Range("I" & Ligne2) - .Range("J" & Ligne2)
.Range("J" & Ligne) = .Range("J" & Ligne2) - .Range("K" & Ligne2)
.Range("K" & Ligne) = .Range("K" & Ligne2) - .Range("L" & Ligne2)
.Range("L" & Ligne) = .Range("L" & Ligne2) - .Range("M" & Ligne2)
.Range("M" & Ligne) = .Range("M" & Ligne2) - .Range("N" & Ligne2)
.Range("N" & Ligne) = .Range("N" & Ligne2) - .Range("O" & Ligne2)
.Range("O" & Ligne) = .Range("O" & Ligne2) - .Range("P" & Ligne2)
.Range("P" & Ligne) = .Range("P" & Ligne2) - .Range("Q" & Ligne2)
.Range("Q" & Ligne) = .Range("Q" & Ligne2) - .Range("R" & Ligne2)
Next Ligne2
Next Ligne
J'aimerais réussir à avoir quelque chose dans le style
For Ligne = 53 to 59 & for Ligne2 = 40 to 46
Avez-vous des idées ou une solution pour avoir ce que je recherche?
Merci à vous
Je voudrais savoir s'il étant possible de faire un double For sur une seule ligne pour permettre le changement de plusieurs lignes en même temps.
Voici le code que j'ai testé mais qui ne modifie les lignes q'un For après l'autre rendant les résultats faux.
With ThisWorkbook.Sheets("")
For Ligne = 53 To 59
For Ligne2 = 40 To 46
.Range("B" & Ligne) = .Range("B" & Ligne2) - .Range("C" & Ligne2)
.Range("C" & Ligne) = .Range("C" & Ligne2) - .Range("D" & Ligne2)
.Range("D" & Ligne) = .Range("D" & Ligne2) - .Range("E" & Ligne2)
.Range("E" & Ligne) = .Range("E" & Ligne2) - .Range("F" & Ligne2)
.Range("F" & Ligne) = .Range("F" & Ligne2) - .Range("G" & Ligne2)
.Range("G" & Ligne) = .Range("G" & Ligne2) - .Range("H" & Ligne2)
.Range("H" & Ligne) = .Range("H" & Ligne2) - .Range("I" & Ligne2)
.Range("I" & Ligne) = .Range("I" & Ligne2) - .Range("J" & Ligne2)
.Range("J" & Ligne) = .Range("J" & Ligne2) - .Range("K" & Ligne2)
.Range("K" & Ligne) = .Range("K" & Ligne2) - .Range("L" & Ligne2)
.Range("L" & Ligne) = .Range("L" & Ligne2) - .Range("M" & Ligne2)
.Range("M" & Ligne) = .Range("M" & Ligne2) - .Range("N" & Ligne2)
.Range("N" & Ligne) = .Range("N" & Ligne2) - .Range("O" & Ligne2)
.Range("O" & Ligne) = .Range("O" & Ligne2) - .Range("P" & Ligne2)
.Range("P" & Ligne) = .Range("P" & Ligne2) - .Range("Q" & Ligne2)
.Range("Q" & Ligne) = .Range("Q" & Ligne2) - .Range("R" & Ligne2)
Next Ligne2
Next Ligne
J'aimerais réussir à avoir quelque chose dans le style
For Ligne = 53 to 59 & for Ligne2 = 40 to 46
Avez-vous des idées ou une solution pour avoir ce que je recherche?
Merci à vous
A voir également:
- Existe-t'il un Double For?
- Double ecran - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
1 réponse
Bonjour
Je ne suis pas tout à fait sûr d'avoir compris ce que tu cherches, mais est-ce que ce ne serait pas tout simplement :
D'ailleurs, une boucle aussi sur les colonnes t'éviterait de ré-écrire 12 fois la (presque) même ligne
Je ne suis pas tout à fait sûr d'avoir compris ce que tu cherches, mais est-ce que ce ne serait pas tout simplement :
With ThisWorkbook.Sheets("")
For Ligne2 = 40 To 46
.Range("B" & (Ligne2+13)) = .Range("B" & Ligne2) - .Range("C" & Ligne2)
.Range("C" & (Ligne2+13)) = .Range("C" & Ligne2) - .Range("D" & Ligne2)
...
Next Ligne2
D'ailleurs, une boucle aussi sur les colonnes t'éviterait de ré-écrire 12 fois la (presque) même ligne
Merci beaucoup!
With ThisWorkbook.Sheets("") ' ???? For Ligne2 = 40 To 46 For col=2 to 17 .Cells (Ligne2+13,col) = .Cells (Ligne2,col) - .Cells( Ligne2,col+1) Next col Next Ligne2Je ne pensais pas qu'on pouvait écrire de cette manière.
Une autre question qui n'est pas vraiment en lien, j'ai un tableau où les mois sont affiché en ligne 2 de la colonne 4 à 15 et lorque j'écris:
Abs = Workbooks(NomFichierModule5).Sheets("TGA " & Flux).Cells(col, Ligne)
Il me met que ABS = Vide alors que mes cellules sont pleines!!
J'ai testé en mettant .text ou .value=nom mais en vain (il m'écrit "VRAI")....
Aurais-tu une idée du pourquoi?
Merci
Ligne = 2
For Col = 4 to 15
Avec Cells, c'est (ligne,colonne), pas (colonne, ligne)