XL 2013 Boucle en fonction d'une adresse de cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanba

XLDnaute Occasionnel
Bonjour le forum,

Excel nous amène toujours à des choses un peu plus folles les unes que les autres..
Voici ce que je suis amené à faire:
Je dispose de data sur 6 colonnes (A à F).
Je me positionne en colonne F (première cellule vide) et je vérifie que la cellule située sur la même ligne dans la colonne A n'est pas vide.
Tant que cette condition est vérifiée, j'écris "Cellule A + son numéro de ligne n'est pas vide".

Merci par avance
 

Pièces jointes

Bonjour Jeanba, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim DL As Integer
Dim I As Integer

DL = Cells(Application.Rows.Count, "A").End(xlUp).Row
For I = 2 To DL
    If Cells(I, "A").Value <> "" Then Cells(I, "G").Value = "A " & I & " n'est pas vide."
Next I
End Sub
 
Re,

Alors comme ça :

VB:
Sub Macro1()
Dim DL As Integer
Dim PLV As Integer
Dim I As Integer

DL = Cells(Application.Rows.Count, "A").End(xlUp).Row
PLV = IIf(Range("F2").Value = "", 2, Range("F1").End(xlDown).Row + 1)
For I = PLV To DL
    If Cells(I, "A").Value <> "" Then Cells(I, "F").Value = "A " & I & " n'est pas vide."
Next I
End Sub
 
Excellent!
ça fonctionne du tonnerre!

2 petites questions:
1) à la fin de ton End Sub y a marqué [COLOR...] je suppose que ça concerne ton poste sur le fil..?
2) imagine qu'en lieu et place de "A n'est pas vide", je veuille plutôt copier et coller formule de Cells(I-1, "G"). C'est quoi la bonne syntaxe, car j'ai bidouillé ça et il dit "erreur de syntaxe, voir avec Robert" 🙂
 
Syntaxe...😛
Je voudrais sélectionner une plage de cellules à partir de la cellule active jusqu'à ma dernière cellule non vide de la 26e colonne située à droite de la cellule active
Range(ActiveCell, ActiveCell.Offset(0, 26)).Select 'cette ligne de code ne sélectionne que la ligne de la cellule active..
 
Re,

Utiliser ActiveCell signifie que VBA a sélectionné au préalable. Or Select est vraiment le mot à bannir quand tu codes. Sauf cas de force majeure. Il ne fait que ralentir l'exécution du code et est très souvent source de plantage. J'aimerai savoir comment tu en arrives à cet ActiveCell...
Pour éviter toutes confusion et toute galère je passe par des variables. C'est plus long mais plus lisible :

VB:
Dim COL As Integer 'ou long selon la valeur
Dim DL As Integer 'ou long selon la valeur

COL = ActiveCell.Offset(0, 26).Column 'ou COL = ActiveCell.Column + 26
DL = Cells(Application.Rows.Count, COL).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne COL
Range(ActiveCell, Cells(DL, COL)).Select 'sélectionne (cas de force majeure !)
 
En fait, je manipule 2 classeurs et je dois supprimer des lignes inutiles.
Ainsi, j'effectue une recherche (je ne me casse pas la tête, j'enregistre une macro qui cherche dans la colonne A du classeur2, la valeur de la dernière cellule colonne A du classeur1. S'il trouve:
- il copie toutes les lignes depuis la ligne de la valeur trouvée jusqu'à en bas
- se positionne dans la cellule active du classeur1 (donc forcément la dernière cellule non vide de la colonne A)
- il fait un collage spécial en écrasant la valeur de cette cellule active

J'espère que c'est à peu près clair pour toi..
 
Je viens de voir d'où vient le problème: comme le code lui demande de sélectionner jusqu'à la dernière ligne non vide de la colonne 26, en fait, c'est ce qui se passe. Je vais essayer de lui dire de copier jusqu'à la dernière ligne non vide de la colonne A plutôt et étendue jusqu'à la cellule correspondante en colonne 26...
 
Re,

Dans ce le code devient :

VB:
Dim COL As Integer 'ou long selon la valeur
Dim DL As Integer 'ou long selon la valeur

COL = ActiveCell.Offset(0, 26).Column 'ou COL = ActiveCell.Column + 26
DL = Cells(Application.Rows.Count, A).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A
Range(ActiveCell, Cells(DL, COL)).Select 'sélectionne (cas de force majeure !)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour