VBA - sélectionner tableau avec un nombre de lignes variable

Bonjour

J'ai fait une macro via l'assistant sur un tableau qui fait 1059 lignes. Tout se passe bien quand j’exécute la macro sur un tableau dont la plage est comprise entre A5 et AG1059.

Toutefois dès lors que mon tableau comporte plus ou moins de ligne la macro s’exécute mais les commandes ne s'appliquent qu'à la sélection initiale, soit jusque la ligne 1059. Logique !

Je voudrai que ma mise en forme et mes calculs ne s'appliquent que jusque la dernière ligne de mon tableau quelque soit le nombre et non pas jusque la ligne 1059 comme dans ma capture ci-dessous.

Cf également fichier joint.

Il y a un bien un truc avec Selection.End(xlDown)..mais je ne me souviens pas comment le placer dans le cas présent. Ou alors il faut définir en début de code peut-être une variable derniereLigne..!! bref je ne sais pas.

Merci de votre aide.

4xlp.xlsm (116.21 Ko)
xlp

Bonjour Marinekali,

Il faut effectivement passer par une variable en début de code

Pour la gestion des TS tout est indiqué dans le post de Thev, ici
https://forum.excel-pratique.com/astuces/tableau-structure-instructions-vba-specifiques-a-cet-objet-...

A+

Bonjour

Tu dis que tout ce passe bien... c'est pas le cas chez moi et c'est normal

Tes dates et tes montants c'est du texte et non des dates ou des nombres...

et pourquoi te compliquer la vie. Pourquoi pas un tableau des le depart?

Le fichier avec la variable dl (dernière ligne)

10xlp-v1.xlsm (120.90 Ko)

A+ François

Bonjour

Merci Messieurs pour vos réponses.

Bruno j'ai lu ce que vous m'avez envoyé mais ce n'est pas si simple pour moi à adapter dans mon code actuel.

Fanfan, oui tout se passe bien chez moi. Effectivement ce fichier dont les données sont extraites d'une application affiche des formats texte sur les dates et montants. Et c'est justement pour cela que je mets en place une macro.

L'objectif étant de :

- mettre en forme le tableau de façon structuré (Mise sous forme de tableau)

- remettre les formats nickel (dates et montants notamment) pour pouvoir faire des TCD et des calculs derrière.

- ajout d'une colonne "Etat facture" avec une fonction SI

une des actions de ma macro consiste donc à modifier les formats en supprimant notamment un caractère caché (invisible) 160, d'où l'utilisation de la fonction =VALUE(SUBSTITUTE([@[Date document]],CHAR(160),"""")). Après je fais un collage spécial des valeurs dans la colonne initial. Je répète l'opération pour toutes les colonnes qui posent problème.

J'ajoute une colonne avec une formule, j'en supprime d'autres et c'est tout.

Mon seul souci actuellement est que mon tableau peut avoir un nombre de lignes variable. Je souhaite juste que toutes les actions entreprises s'exécutent sur l'ensemble de mon tableau quelque soit le nombre de lignes.

J'ai testé la macro avec votre ajout de code et ça plante (voir capture)

image

Merci par avance de votre aide.

Bonjour à tous,

À lire les explications données par Marinekali dans son dernier message (et même si ça donne l'impression de ramer à contre-courant ), il me semble que Power Query pourrait faire le job aussi (remplacer des caractères, ajouter une colonne personnalisée ou conditionnelle, en supprimer d'autres, ...)
C'est un poil plus simple à prendre en main que le VBA

Effectivement Query serait une bonne alternative, sous réserve d'avoir le temps de comprendre comment ça fonctionne ! J'avais commencé à m'initier il y a quelques années et n'ayant pas pratiqué j'ai perdu les quelques acquis de l'époque. Aussi comme souvent les besoins sont pressants et quand bien mêle le sujet m’intéresse fortement, je dois trouver une solution rapide.

Le code la macro est celui de l'assistant, donc pas top mais il fait le job ! juste ce problème de sélection selon le nombre de lignes variable.

J'imagine que pour des cerveaux tels que les vôtres tout ça est à porter de main mais pour moi c'est plus compliqué étant autodidacte sur quasiment tout !

Merci pour vos pistes de réflexion.

Bien à vous.

Bonjour

J'ai revu toute ta macro

Je n'ai toujours pas compris à quoi servent les colonnes D,H,J,L,N, etc...

il y aura certainement des corrections à faire (ayant mis en commentaire une vingtaine de ligne)

5xlp-v1.xlsm (232.28 Ko)

A+ François

Rechercher des sujets similaires à "vba selectionner tableau nombre lignes variable"