XL 2013 Modifier avec VBA l'adresse de la dernière cellule d'une feuille

escouger

XLDnaute Occasionnel
Bonjour,
Ma question est simple.
Je dispose d'un tableau dont seules les colonne A à H sont remplies depuis la ligne 1 jusqu'à la ligne 17.
Ce tableau a été généré via une macro depuis un autre tableau.
Pour une raison que je ne comprends pas la dernière cellule de mon tableau est IDA2180.
Comment pourrais-je (via VBA, dans la macro "Auto_open" par exemple), rectifier l'adresse de cette dernière cellule en y mettant par exemple H17 ?
Merci d'avance de votre assistance
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans votre fichier, je ne vois pas bien ce qui vous indique que la dernière cellule du tableau est IDA2180 !

Certainement cela vient de la macro qui crée le tableau. C'est sans doute elle qu'il faut corriger.

Cordialement
 

escouger

XLDnaute Occasionnel
Bonjour,
IL suffit de taper au clavier CTRL+Fin indiqué sur une touche du clavier à droite pour se positionner sur cette cellule.
Malheureusement ce fichier m'arrive d'un autre correspondant et je n'ai pas accès aux macros qui ont participé à la création de ce fichier.
Ce qui est également étrange est que ce même fichier est lu sans souci la plupart du temps mais parfois, de manière aléatoire, un message spécial apparaît. (voir la pièce jointe) notemment s'il est lu par excel 2007. La igne 2 de contient qu'une constate "Voyages" en colonne A. Je ne sais pas comment décrypter la colonne 213545...existe-t-il un code pour retrouver le numéro de cette colonne ? IDA correspondrait plutôt à 6189.

Cordialement
xxx.jpg
xxx.jpgxxx.jpg
 

job75

XLDnaute Barbatruc
Bonjour escouger, Roblochon,

Oui, on peut trouver la dernière cellule avec la commande Atteindre de la touche F5.

Dans le fichier joint les lignes superflues sont supprimées à l'ouverture du fichier par cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim c As Range
Set c = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious)
c(2).EntireRow.Resize(Rows.Count - c.Row).Delete
Set c = Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious)
c(1, 2).EntireColumn.Resize(, Columns.Count - c.Column).Delete
With ActiveSheet.UsedRange: End With 'actualise les barres de défilement
Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
La dernière cellule devient H17.

A+
 

Pièces jointes

  • 2020_XCVS_Journées_Voyages_filtered(1).xlsm
    83.9 KB · Affichages: 5

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Oui, il s'agit de la dernière cellule de la plage utilisée et enregistrée par excel pour la feuille et non la dernière cellule du tableau.
Je vois que @job75 vous a donné le moyen de supprimer les colonnes et lignes en trop; Donc je ne m'attarde pas là dessus.

Par contre ne cherchez pas la ligne 2 et la colonne 213545 qui n'existe que dans la repésentation XML du fichier qu'excel enregistre et compresse.

Prenez un fichier .xlsx ou .xlsm quelconque avec quelques trucs non importants à l'intérieur. Fermez le et renommez son extension en .zip puis décompressez votre fichier .zip dans un répertoire, vous verrez de quels fichiers XLM votre message parle.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG