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
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
Un grand merci. C'est ce que je voulais sans pouvoir y atteindre.
Le problème a vite été résolu.
Je n'ai donc plus besoin de la colonne A avec mes formules.
Bonne journée.
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
Re bonjour,
En effet je passe par un array pour accélérer les choses. Tout dépend de la taille de votre fichier.
En dessous de 1000 lignes le ressenti sera le même. Au delà un array accélère grandement les choses.
Voir cette PJ.
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é. 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
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 :
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.
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
Il vous faut comprendre que le VBA est un "langage universel" issu du Basic et qu'il répond à des critères globaux, et d'autre part que ce VBA n'est pas attaché à XL mais à Office, c'est donc le même pour XL, Word, Powerpoint ... il a donc les qualité d'un langage transverse, ... et ses défauts.
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.