VBA excel current Line

Résolu
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 31 oct. 2007 à 11:58
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 5 nov. 2007 à 21:21
Bonjour,

Je souhaite executer une partie de la macro tant que la ligne actuelle n'est la dernière ligne (65536).

J'ai essayé avec

Do
...
Loop While current.Line <> 65536

Mais "Loop While current.Line <> 65536" pose problèmes.

Merci pour votre aide.
Ludo

7 réponses

cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
31 oct. 2007 à 18:31
Re

Je crois que j'ai compris ton pb.
Essaie ce code :

Sub couleur_gris()
Range("A1").Select
Range("A1:N1").Interior.ColorIndex = 15
ligne = Range("A1").End(xlDown).End(xlDown).Row

While ligne < 65536
    Range("A" & ligne & ":N" & ligne).Interior.ColorIndex = 15
    ligne = Range("A" & ligne).End(xlDown).End(xlDown).Row
Wend
End Sub

Frédéric
3
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
31 oct. 2007 à 12:29
Bonjour à tous
Bonjour Liro

Pour être plus précis dans notre réponse, il faudrait que tu nous donnes un peu plus de détails sur ta boucle (ou mieux le code de ta macro)

Frédéric
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
31 oct. 2007 à 13:55
Bonjour Frédéric,

Voici le code:
Do
    ActiveCell.Range("A1:N1").Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
    End With
    ActiveCell.Select
    Selection.End(xlDown).Select
    Loop While current.Line <> 65536

Dans mon fichier j'ai des titre dans la colonne A uniquement.
Je profite de cette particularité pour mettre un fond gris (ColorIndex = 15) à tous les titres.

Merci pour ton/votre aides.
Ludo
0
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
31 oct. 2007 à 14:01
Re

Que veux tu faire avec : current.Line <> 65536, je ne comprends pas.

Tu n'as aucune boucle, et le fond gris sera mis pour les cellules
 ActiveCell.Range("A1:N1").Select
et uniquement pour celles-ci
Si la dernière ligne n'est pas fixe, alors il faut juste définir la dernière ligne et griser de A1 à XXXX1

Frédéric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
31 oct. 2007 à 14:20
Dans le fichier il y a un nombre variable de lignes.
Ces lignes sont séparées par des catégories (nombres variable également), quand il y a un nouveau titre de catégorie alors il y a quelque chose dans la colonne A (cette colonne ne sert qu'à ça).

En parcourant la colonne A par des "Selection.End(xlDown).Select" je peux donc me placer sur les lignes où il y a des titre de catégories.

Le but de ma macro est de mettre en forme ces titres en mettant un fond gris sur la ligne actuelle de la colonne A à N.

Ma boucle s'éxecuterai jusqu'à ce que la ligne actuelle soit la ligne 65536 ce qui signifirai que tous les titres ont été mis en forme.
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
5 nov. 2007 à 21:13
Merci Frédéric mais ta solution ne colore qu'une fois sur deux (?)/
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
5 nov. 2007 à 21:21
Il y avait un "End(xlDown)" de trop :)

Voici la solution:

Sub couleur_gris()
ligne = Range("A1").End(xlDown).Row

While ligne < 65536
    Range("A" & ligne & ":N" & ligne).Interior.ColorIndex = 15
    ligne = Range("A" & ligne).End(xlDown).Row
Wend
End Sub

Merci pour ton aide!
0
Rejoignez-nous