VBA: sélectionner dernière ligne non vide d'une feuille avec formules

Bonjour à tous,

Je cherche à faire une macro VBA, qui sélectionne une plage de données sur Excel avec 10 colonnes mais un nombre de lignes variables.

Mon problème vient du fait que je n'arrive pas à sélectionner la dernière ligne de ma feuille. J'ai essayé avec le classique "Cells(Rows.Count, 2).End(xlUp).Row", mais cela ne fonctionne pas pour moi.

La raison est que mon fichier Excel est rempli de formules, du type SI(A2="";"";A2). Cela implique que j'ai des cellules qui sont en apparence vides, mais qui ont une formule. Et je n'arrive pas à trouver comment faire pour exclure ces cellules vides mais avec formule.

Pourriez-vous svp m'aider à trouver une solution ?

Et 2e petite question si vous permettez: une fois la sélection faite, comment faire pour trier les données de Z à A selon la colonne 9 ?

Je vous remercie par avance pour votre aide! Et vous souhaite une excellente journée à tous.

Bonjour, un fichier exemple sans données sensibles serait utile.

29fichier.xlsx (11.74 Ko)

Voici un exemple. Concrètement il s'agit d'un fichier avec beaucoup de liaisons. Ici j'ai simplifié en mettant la liaison avec une autre feuille. Pour diverses raisons, il est impossible de travailler directement sur la source. Et le nombre de lignes de la source varie, d'où le besoin d'avoir recours à ces formules du type SI(A2="";"";A2). Est-ce que c'est plus clair comme cela ?

Exemple pas trés révélateur puisqu'il suffit de trouver la dernière ligne de la source pour savoir combien de ligne

sont occupées dans l'onglet fichier1.

Pour le tri comme il n'y a pas 9 colonne dans votre exemple. Utiliser faite un tri par vous-même en utilisant

l'enregistreur de macro.

Vous aurez une bonne partie du code qu'il suffira d'adapter au nombre de lignes trouvées précdemment.

Merci pour ce retour. Comme indiqué précédemment, il n'est malheureusement pas possible de travailler sur la source (étant elle-même liée à d'autres fichiers... c'est une architecture complexe). Il me faut absolument travailler sur le "fichier 1".

Avez-vous une idée de comment faire pour sélectionner uniquement les lignes qui ont une valeur ? Par exemple, avec un code du type "Cells(Rows.Count, 2).End(xlUp).Row" , mais qui exclut les cellules dont la valeur est "" ?

Merci encore.

Je n'ai pas écris qu'il fallait travailler sur la source ; seulement qu'il fallait utiliser le nombre de ligne de la source pour trouver le nombre de ligne de votre feuille.

Sub Macro1()
'
Dim derligne As Long
derligne = Worksheets("Source").Cells(Rows.Count, 2).End(xlUp).Row

Range("A1:B" & derligne).Select

End Sub
102fichier.xlsm (21.00 Ko)
Rechercher des sujets similaires à "vba selectionner derniere ligne vide feuille formules"