Macro export données tableau vers autre tableau
Bonjour à tous,
Me voilà avec un souci de macro. Je suis en train de m'autoformer sur le VBA et je bute sur un souci par manque de connaissances.
Je m'explique, j'ai un premier fichier ("LM" voir en pièce jointe) dans lequel j'ai un tableau avec des lignes remplies et d'autres non. Que je filtre si j'ai besoin pour n'avoir qu'un tableau de lignes remplies.
Mon besoin est de pouvoir exporter toutes les données vers un nouveau fichier EXCEL (que j'ai nommé "EXPORT" voir pièce jointe) dans un ordre bien précis.
En suivant quelques liens je trouve un bout de code qui suit :
Sub copi()
Sheets("LISTE MATERIEL").Range("B11:B200").Copy _
Workbooks("EXPORT.xlsm").Sheets("Feuil1").Range("C2:C2000")
Sheets("LISTE MATERIEL").Range("C11:C2000").Copy _
Workbooks("EXPORT.xlsm").Sheets("Feuil1").Range("D2:D2000")
Sheets("LISTE MATERIEL").Range("I11:I2000").Copy _
Workbooks("EXPORT.xlsm").Sheets("Feuil1").Range("B2:B2000")
End SubEn gros je copie du fichier LM la colonne B vers la colonne C du nouveau fichier, colonne C LM vers D, colonne I LM vers B.
J'ouvre mes deux fichiers, je lance la macro ça semble faire le job au premier abord.
Sauf que j'ai deux soucis :
1- ça me colle aussi les cellules vides, et je ne trouve pas comment faire pour que ça ne prenne que les lignes complétées.
2- ma celle C2:C2000 du fichier source est une formule CONCATENER qui m'affiche une valeur mais à l'export ça me met des cellules vides dans le nouveau fichier.
Auriez-vous une correction à me proposer pour que cela fasse l'export sans les 2 soucis ?
A savoir que la mise en forme du fichier export n'est pas importante, c'est un fichier que je dois ensuite injecter dans un ERP pour qu'il vienne les infos et les avaler dans sa moulinette pour interprétation.
Merci et bonne journée à tous,
Hello,
Tu as 2 tableaux dans ta feuille LISTE MATERIEL. Donc copy déjà va récupérer ton 2 eme tableau avec les en-têtes.
et si tu veux copier les lignes après filtre il faut utiliser cette syntaxe :
Sheets(NomDeLaFeuille).Range("A2:AZ16500").SpecialCells(xlVisible).CopyR@g
C'est top merci !
J'ai rajouté une colonne à filtrer pour ne garder que les lignes à texte puis application de ton bout de formule et ça me sort le résultat escompté merci