Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

exécuter macro si cellule pas vide

3 réponses
Avatar
Daniel
Bonjour à tous

J'ai une macro qui importe un fichier texte donc je ne connais pas le nombre
de ligne.
puis je doit exécuter une autre macros sur chacune des lignes .

Comment faire pour que ma deuxième macro s'exécute sur chacune des lignes
une après l'autre.
(a la fin de la macros la cellule active est une cellule en dessous de la
ligne exécuter.)
la dernière ligne est vide ,la ou la macros doit finir.


Merci

3 réponses

Avatar
LSteph
Bonjour,
dans l'incertitude du contenu de ta macro qui pouurrait s'avèrer suppressive
de la ligne
proposé une boucle en remontant et qui retournera à la fin après:

'****
Sub mamac2()
For i = [a65536].End(3).Row To 1 Step -1
''''''''''ici: call macro2 ou le contenu
Next
[a65536].End(3).Offset(1, 0).Select
End Sub
'***

'lSteph
"Daniel" a écrit dans le message de news:
%
Bonjour à tous

J'ai une macro qui importe un fichier texte donc je ne connais pas le
nombre de ligne.
puis je doit exécuter une autre macros sur chacune des lignes .

Comment faire pour que ma deuxième macro s'exécute sur chacune des lignes
une après l'autre.
(a la fin de la macros la cellule active est une cellule en dessous de la
ligne exécuter.)
la dernière ligne est vide ,la ou la macros doit finir.


Merci



Avatar
LSteph
..et peut être exemple plus concret avec coloration de la ligne rows(i)
une ligne sur deux:
'**
Sub mamac2()
For i = [a65536].End(3).Row To 1 Step -1
If Rows(i).Row Mod 2 = 0 Then
Rows(i).Cells.Interior.ColorIndex = 8
End If
Next
[a65536].End(3).Offset(1, 0).Select
End Sub
'**

Nota tu peux aussi utiliser l'indice de boucle pour une cellule ex:
cells(i,4)

"Daniel" a écrit dans le message de news:
%
Bonjour à tous

J'ai une macro qui importe un fichier texte donc je ne connais pas le
nombre de ligne.
puis je doit exécuter une autre macros sur chacune des lignes .

Comment faire pour que ma deuxième macro s'exécute sur chacune des lignes
une après l'autre.
(a la fin de la macros la cellule active est une cellule en dessous de la
ligne exécuter.)
la dernière ligne est vide ,la ou la macros doit finir.


Merci



Avatar
Daniel
Bonsoir LSteph

Très bien cela fonctionne bien.
je voudrait exécuter la répétition sur les lignes qui contienne la lettre
"U"
et passer les autres.
Dans l'exemple suivante la macro s'exécuterais seulement 3 foix.

2400001N
2400007U
2400022N
2400025U
2400024U
2400034N
2400037N


voici le début de la macros:

Sub Tout_Waypoints_TestCar()
Range("A1").Select
For i = [a65536].End(3).Row To 1 Step -1
ActiveCell.Offset(0, 2).Select
Selection.Copy ............
........

Merci

"LSteph" a écrit dans le message de news:

Bonjour,
dans l'incertitude du contenu de ta macro qui pouurrait s'avèrer
suppressive de la ligne
proposé une boucle en remontant et qui retournera à la fin après:

'****
Sub mamac2()
For i = [a65536].End(3).Row To 1 Step -1
''''''''''ici: call macro2 ou le contenu
Next
[a65536].End(3).Offset(1, 0).Select
End Sub
'***

'lSteph
"Daniel" a écrit dans le message de news:
%
Bonjour à tous

J'ai une macro qui importe un fichier texte donc je ne connais pas le
nombre de ligne.
puis je doit exécuter une autre macros sur chacune des lignes .

Comment faire pour que ma deuxième macro s'exécute sur chacune des lignes
une après l'autre.
(a la fin de la macros la cellule active est une cellule en dessous de la
ligne exécuter.)
la dernière ligne est vide ,la ou la macros doit finir.


Merci