For Ligne= To plusieurs fois

Bonjour à tous,

J'ai un macro VBA qui doit s'effectuer pour les lignes 50 à 200 et un autre pour les lignes 201 à 2000.

J'ai donc écris deux fonctions à la suite pensant qu'en mettant deux fois For Ligne = To, cela marcherait. Or, il n'est possible de mettre qu'une fois For ligne = To.

Comment régler ce problème en sachant que je ne veut pas faire 2 macro distinctes ?

Je vous remercie,

Adevy

bonjour essaye ceci :

dim i as integer 

'code 

for i =50 to 200
'instructions
next i

for i =201 to 2000
'instructions 
next i 
 'suite du code 

Fred

Merci beaucoup.

Toutefois, voici un extrait de mon code :

Dim couleur As String
Dim Cel As Range, Plage As Range

For i = 206 To 1304

rouge = RGB(Red:=255, Green:=0, Blue:=0)

   If Cells(ligne, 1).Font.Color = rouge Then
        couleur = Cells(ligne, 1)

Lorsque j'ajoute i, cela fait bugger la ligne surlignée.

Comment l'expliquer ?

Merci

Ligne n a pas l air definie....

donc d apres ce que j ai donné précédemment soit tu renomme i en ligne :

For ligne =206 to xxxxxxx

next

Soit dans ton expression tu remplace ligne par i...

par contre je ne vois pas très bien ce que tu veux récupérer en faisant :

couleur = Cells(ligne, 1)

Fred

Merci beaucoup, ça marche quand je remplace ligne par i.

Juste une question (pour ma culture): pourquoi ça marche ? Comment le programme sait il que i=ligne alors que je ne l'ai pas défini ?

Encore Merci !!

Bonjour

cela marche parce que VBA declare les variables a ta place. ..

personnellement je préfère declardr toutes mes variables et pour me forcer a le faire il faut que dans ton module tu mette en haut acant la premiere sub

option explicit 
sub premieresub ()

Ainsi toute variable non definie provoquera une erreur de compilation au moment de l exécution du code

c est aussi paramétrable dans les options de vba pour que chaque module commence par cette instruction.

fred

Rechercher des sujets similaires à "ligne fois"