XL 2013 Cellule vide VBA

  • Initiateur de la discussion Initiateur de la discussion karinette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

karinette

XLDnaute Occasionnel
Bonjour à tous les experts,
J'ai une extraction d'un fichier que je déplace dans un autre (une plage de formule).
Lorsque je les colle dans mon fichiers, c'est en collage special / Valeur.
Mon souçis est lorsque je vais chercher la dernière cellule vide (Ctrl + Fleche bas ou par macro avec : "Range("A1").Select / Selection.End(xlDown).Select") cela va sur la dernière cellule vide mais en prenant compte du copier collé de l'extraction (alors que les cellules sont vide ?!).
Est-ce que le fait d'avoir une formule peut avoir une influence et déclarer la cellule vide en "non-vide" ...
J'avoue que je seche ...
J'espère avoir été clair 😉
J'ai mit le fichier en PJ. la macro devrait me placer en A4 (première vide), mais me place en A25 (??).
Merci de vos retours 🙂
 

Pièces jointes

Je pense que tu as un tableau qui va jusqu'à la ligne 24 et donc par défaut la dernière valeur vide du tableau en question est bien la ligne 24.
En effet, si tu essaye de tirer les cellule colorié en bleu vers le bas tu verra que ta fonction sélectionne bien la dernière cellule en bleu donc en soi, ce n'est pas la recherche le problème mais l'extraction je pense
 
hello

si tu mets la formule =Estvide(A25) dans une colonne de test: tu verras que tes lignes A4 à A25 ne sont pas vides
j'avais d'abord pensé à un espace, ou un retour chariot..
c'est pas ca.. l'origine de ton pb vient surement de ta formule initiale qui doit sans doute placer un caractère spécial ou autre: et quand tu fais ton Ctrl C CtrV valeur, il en reste une "trace"
 
Bonjour à tous 🙂,

Suivant ce que vous désirez, essayez une des deux procédures (code dans le module de "Sheet1") :
VB:
Sub PremiereCelluleVide()
   Cells(Application.Evaluate("=SMALL(IF(a1:a9999="""",ROW(a1:a9999),""""),1)"), "a").Select
End Sub

Sub PremiereCelluleVideAprèsDerniereDonnee()
   Cells(Application.Evaluate("=LARGE(IF(a1:a9999<>"""",ROW(a1:a9999),""""),1)+1"), "a").Select
End Sub

La valeur 9999 est à modifier pour être supérieure au nombre de lignes collées.
 

Pièces jointes

Dernière édition:
si tu executes ce bout de code avant de te placer sur la derniere ligne, ca "corrige" le pb
VB:
Sub test2()
Dim tabdata() As Variant
tabdata = Range("A1:A30").Value

Range("A1:A30") = tabdata
End Sub
Je pense effectivement que le copié/collé doit garder quelque chose en "non vide" ...
Par contre la parade est efficace, ça marche parfaitement !!!
Encore merci pour le code 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
237
Retour