Re : Problème VBA
Hello,
Fonction Range :
Dans son utilisation la plus courante, dans la référence de la colonne est indiqué par une LETTRE : colonne
A, colonne
B, colonne ...
Bref, pour parler de la cellule B10 tu écriras :
Range("B10")
Fonction Cells :
Alors que là, la référence de la colonne est indiqué par sa position : en CHIFFRE. Pour parler de la colonne :
-> A, tu écriras : 1
-> B, tu écriras : 2
-> AA, tu écriras : 27
-> AB, tu écriras : 28
-> ...
Bref, pour parler de la cellule B10 tu écriras :
Cells(10, 2)
Evidement, tu peux remplacer les chiffres 10 et 2 par des variables.
----------------------------------------------------
Pourquoi la plupart préfère la solution Cells()?
Imagine le cas suivant :
Je veux
-> traiter la colonne B2
-> traiter la prochaine colonne paire : D2
-> traiter la prochaine colonne paire : F2
-> ...
Il est plus facile de dire
-> colonne : 2 -> B
-> colonne suivante à traiter : colonne précédente (2) + 2 -> D
-> colonne suivante à traiter : colonne précédente (4) + 2 -> F
-> ...
Autant on peut faire des opérations avec des chiffres, comme ci-dessus alors qu'avec des "lettres"! Comment dire à excel colonne B (et non pas 2), puis colonne B + 2???
Bref, avec cells() on a le code suivant
For NuméroColonne = 2 To 10 Steep 2
----Cells(10, NuméroColonne) = ...
Next NuméroColonne
Complément :
J'ai vu que tu connaissais la boucle For... To .... Next
Dans ton exemple :
For i = 2 To nb_lignes
...
Next i
Cela signifie :
-> lorsque la boucle est réalisé pour la première fois, la valeur i contient le chiffre 2
-> arrivé au mot "Next", excel incrémente la variable "i" de 1 (c'est à dire qu'il ajoute 1 à la valeur contenu dans "i")
-> donc lorsque la boucle est réalisé la seconde fois, la valeur i contient le chiffre 3.
-> si le chiffre 3 est égale au chiffre contenu dans la variable nb_lignes, il exécutera cette boucle une dernière fois, sinon il l’exécutera encore...
Lorsque tu rajoute
Steep 2 au lieu d'incrémenter le chiffre contenu dans ta variable "i" de 1, il rajoutera 2. Donc comme dans notre cas on commence au chiffre
2, ta boucle traitera toutes les colonnes PAIRES.
Si tu as besoin de plus d'explication sur un point particulier, n'hésite pas.
A demain soir