XL 2016 Aller à la dernière ligne suivant condition de cellules.

Collins

XLDnaute Occasionnel
Bonjour à tous

Je voudrai avoir une aide pour aller à la dernière ligne suivant la condition qu'il n'y ai pas 0 dans les cellules de la colonne D.
Ma macro que j'ai essayé n'est pas concluante.
J'ai mis les explications dans un fichier exemple.
Je vous remercie
 

Pièces jointes

  • Test_2112.xlsm
    19 KB · Affichages: 21
Solution
Bonjour Collins, Pierrejean,
Avec un peu de retard et :
VB:
Sub dernière_ligne()
Dim tablo, L%
tablo = Range("D1:D" & Range("D65500").End(xlUp).Row)
For L = UBound(tablo) To 1 Step -1
    If Val(tablo(L, 1)) <> 0 Then
        a = Val(tablo(L, 1))
        Cells(L, "D").Select
        Exit Sub
    End If
Next L
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Collins, Pierrejean,
Avec un peu de retard et :
VB:
Sub dernière_ligne()
Dim tablo, L%
tablo = Range("D1:D" & Range("D65500").End(xlUp).Row)
For L = UBound(tablo) To 1 Step -1
    If Val(tablo(L, 1)) <> 0 Then
        a = Val(tablo(L, 1))
        Cells(L, "D").Select
        Exit Sub
    End If
Next L
End Sub
 

Pièces jointes

  • Collins.xlsm
    18.4 KB · Affichages: 5

Collins

XLDnaute Occasionnel
Bonjour Sylvanu, le forum

Effectivement avec ta méthode il n'y a pas photo au niveau temps sur de nombreuses lignes.
Par contre j'ai voulu faire l'essai avec ta méthode sur mon fichier réel. Donc j'ai supprimé la Colonne A, j'ai essayé de modifier ton code en changeant les D par C. Et çà n'a pas marché.:mad: Et comme je ne connais pas par exemple : les array et UBound(tablo. (ce qui me semble être pour la dimension du tableau).
Donc j'ai remis la Colonne A.
Encore merci pour tes réponses.
Bonne journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
La ligne
VB:
tablo = Range("D1:D" & Range("D65500").End(xlUp).Row)
transfère la plage D1 à dernière ligne dans un tableau.
En supprimant la colonne A, il y a de fortes chances que l'ex colonne D soit en colonne C, donc :
Code:
tablo = Range("C1:C" & Range("C65500").End(xlUp).Row)
mais changez aussi
Code:
Cells(L, "D").Select
par
Cells(L, "C").Select
Voir la PJ j'ai modifié ma macro et celle de Pierrejean en supprimant la colonne A.
Le problème est qu'il n'y a pas de mise à jour du VBA lorsque vous ajoutez supprimez des colonnes dans la feuille. Si les formules dans la feuille sont réactualisées, vous devez mettre à jour le VBA, et ce pour toutes les lignes. Saus à nommer les colonnes dans la feuilles, ainsi les noms appelés en VBA deviennent indépendantes des modifs dans la feuille.
 

Pièces jointes

  • Collins3.xlsm
    78.7 KB · Affichages: 3

Collins

XLDnaute Occasionnel
Re
Pourtant dans ton code, j'avais modifié les 3 D en les remplaçant par C et ça n'a pas marché. Alors c'est là que j'ai pensé qu'il fallait modifier autre chose.
Quand à la macro de pierrejean effectivement celle ci était plus facile à modifier donc elle a bien fonctionné en ayant enlevé la col A.
Dommage que les macros ne se mettent pas à jour comme les formules.
Merci encore
 

Collins

XLDnaute Occasionnel
Ok, déjà je pensais que ce n'était que pour XL.
Pour moi le gros défaut que je lui trouve c'est que c'est bien compliqué :) heureusement qu'ici on a des aides et des explications bien utiles. Autrement nous n'avancerions pas beaucoup pour créer nos fichiers.
 

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko