Macro excel
nlegoupil
Messages postés
65
Statut
Membre
-
nlegoupil Messages postés 65 Statut Membre -
nlegoupil Messages postés 65 Statut Membre -
Bonjour,
Voila, j'ai besoin d'aide!
j'ai un document excel qui contient 159 feuilles. sur chaque feuille un tableau qui contient le même nombre de colonnes. Sur les colonnes C et D et E, certaines cellules sont restées vides.
Ce que j'ai besoin de faire, c'est remettre toutes les lignes de toutes les feuilles sur la même feuille, en supprimant les cellules vides sur les colonnes C ET D ET E (sur aucune des trois), ainsi que la première ligne de chaque feuille (qui contient le titre des colonnes).
Merci d'avance à qui voudra bien prendre un peu de son temps pour m'aider...
Voila, j'ai besoin d'aide!
j'ai un document excel qui contient 159 feuilles. sur chaque feuille un tableau qui contient le même nombre de colonnes. Sur les colonnes C et D et E, certaines cellules sont restées vides.
Ce que j'ai besoin de faire, c'est remettre toutes les lignes de toutes les feuilles sur la même feuille, en supprimant les cellules vides sur les colonnes C ET D ET E (sur aucune des trois), ainsi que la première ligne de chaque feuille (qui contient le titre des colonnes).
Merci d'avance à qui voudra bien prendre un peu de son temps pour m'aider...
3 réponses
-
Bonjour,
Voici un premier jet qui regrouperas les données de toutes les feuilles
sur la première feuille. Attention, si le nom des feuilles diffèrent, il te
faudra aussi adapter.
Option Explicit Sub XFR_Data() ' La procédure fonctionne si des données sont ' inscritent dans la colonne A de chaque feuille Dim WS As Worksheet Dim Plage As Range Dim Limite As Long, Boucle As Long Sheets("Feuil1").Select Limite = Range("A65536").End(xlUp).Row + 1 Range("A" & Limite).Select For Each WS In Worksheets If (WS.CodeName <> "Feuil1") Then WS.Select Limite = Range("A65536").End(xlUp).Row ' Ici la colonne F est choisi par hazard ' il te faudra adapter Set Plage = Range("A2:F" & Limite) Plage.Select Selection.Copy Sheets("Feuil1").Select ActiveSheet.Paste Application.CutCopyMode = False Limite = Range("A65536").End(xlUp).Row + 1 Range("A" & Limite).Select End If Next WS End Sub
Si tu comprends cette procédure, alors je pourrai te proposer
la suite pour nettoyer les cellules vides, car je n'ai pas exactement
compris si tu veux supprimer la cellule ou la ligne complète.
S'il s'agit de la cellule, il y aura décalage des données !!!
Cdt
Info -
ouhaa merci!! ça marche ... presque...! Le seul problème c'est que la colonne A de chacune des mes feuilles n'est pas prise en compte. A la place dans la feuille 1 (la ou les cellules sont collées après l'execution de la macro), il y a "feuille 1" sur toutes les lignes...
Sinon pour la suppression des lignes vides, je vais faire simple avec un petit tri à la fin, ce sera très bien! -
Je viens de comprendre pourquoi j'ai ce problème.
Pour obtenir les 159 feuilles, j'ai fait une première macro, qui avait pour résultat que toutes les feuilles portent le nom des cellules de la colonne A (dans colonne A, toutes les cellules portent le même nom, c'est un code, qui est donc également le nom de la feuille).
Résultat, dans feuil1, les cellules de la colonne A, portent le nom de la feuille...
Que faire? si je supprime la 1ere macro, mes cellules ne vont plus savoir comment s'appeler...
Je ne sais pas si je suis très claire...