Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mise à jour de .SpecialCells(xlCellTypeLastCell) ?

JCA06

XLDnaute Occasionnel
Bonsoir le Forum,

J'ai une bonne nouvelle pour vous ! Je vous ai évité plusieurs questions aujourd'hui

Bon, c'est vrai qu'il en reste tout de même...

Toujours dans ma quête de récupération de données de sources diverses et variées, y compris des fichiers word, j'ai pensé qu'il me serait utile de supprimer de ma feuille source les lignes vierges et de rassembler également les données en colonnes en supprimant, ensuite, les cellules vides et en décalant vers la gauche.
C'est un peu alambiqué, mais cela fonctionne tout de même.

Maintenant, ce que je ne parviens pas à faire, c'est à mettre à jour ma référence de dernière colonne :angry:
Etant donné que j'ai serré les données vers la gauche, je récupére ma dernière ligne sans erreur avec un simple :
DerLigne = Cells(65000, 1).End(xlUp).Row

Mais je n'ai pas trouvé la solution pour la colonne. J'utilise en amont la méthode .SpecialCells(xlCellTypeLastCell).column pour délimiter mes boucles, mais cette méthode ne tient pas compte des informations que j'ai supprimées et me donne toujours la même valeur.
Dans mon exemple test, j'ai toujours l'équivalent de E101 comme valeur alors que cela devrait être, après nettoyage, C68 !

Je n'ai pas trouvé d'autre astuces, sauf celle de vous envoyer un petit mot !

Merci d'avance !
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir JCA06,

Pour contourner ce bug de détection de dernière colonne ou ligne utilisée, notamment lorsque tu supprimes ou ajoutes des lignes ou colonnes, peut-être peux-tu essayer :
Par ailleurs, au même titre que tu utilises :
DerLigne = Cells(65536, 1).End(xlUp).Row
pour détecter la dernière ligne utilisée par rapport à la colonne A,

tu peux utiliser :
Dim DernCol As Integer
DernCol = Cells(1, 256).End(xlToLeft).Column
pour détecter la dernière colonne utilisée par rapport à la ligne 1 (le principe reste toujours le même).

Cordialement,

Message édité par: myDearFriend!, à: 10/05/2005 23:54
 

JCA06

XLDnaute Occasionnel
Bonjour Didier, bonjour le Forum,

Merci Didier, ça marche impeccable :lol:

Pour ce qui était d'utiliser DernCol = Cells(1, 256).End(xlToLeft).Column, je ne pouvais pas le faire car la ligne la plus longue est variable, et ce n'est jamais la 1.
Pour le DerLigne = Cells(65000, 1).End(xlUp).Row, je pouvais l'utiliser car j'avais décalé les cellules vers la gauche et j'étais donc certain que ma colonne A était toujours remplie.

Merci beaucoup pour ton aide et pour ta pédagogie !

Bonne journée le forum !

P.S. : j'avais posté ce message bien plus tôt ce matin, mais j'ai eu un problème à la validation, comme cela m'arrive assez régulièrement. Mais comme je m'en méfie, je prends soin de copier mes messages avant de valider :woohoo:
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…