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

Macro pour compiler des données les unes a côté des autres

  • Initiateur de la discussion Initiateur de la discussion lila2005
  • 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 !

lila2005

XLDnaute Nouveau
Bonjour,

La macro suivante me permet de compiler des données les unes en dessous des autres :
Sub jj()
Dim sh As Worksheet
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Compilation").Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets.Add
ActiveSheet.Name = "Compilation"
[a1] = "Compilation"
For Each sh In ActiveWorkbook.Sheets
If sh.Name <> "Compilation" Then
Set plage = sh.Range("v7147:ac7191" & sh.Cells(Rows.Count, "a").End(3).Row)
plage.Copy
Sheets("Compilation").Range("a" & Sheets("Compilation").Cells(Rows.Count, "a").End(3).Row + 1).PasteSpecial Paste:=xlPasteAll
End If
Next
End Sub

J'aimerais compiler des données les unes à côté des autres. Je me suis dit qu'en remplacant "rows" par "columns" ca marcherait mais quand je fais ca l'application ne fonctionne plus. Quelqu'un aurait-il une piste?

Et merci pour le site, il est génial!!!😀
 
Re : Macro pour compiler des données les unes a côté des autres

Bonjour lila,

ce serait quand même plus facile pour te répondre si tu pouvais joindre un fichier avec explications précises de ce que tu attends

Pas très bien compris le fait que tu supprime la feuille "Compilation" et que tu en recrée une directement et qui portera le même nom ?????????????????????
 
Dernière édition:
Re : Macro pour compiler des données les unes a côté des autres

bonjour lila2005, phlaurent55

essaye en remplaçant
Code:
Sheets("Compilation").Range("a" & Sheets("Compilation").Cells(Rows.Count, "a").End(3).Row + 1).PasteSpecial Paste:=xlPasteAll
par
Code:
Sheets("Compilation").Cells(1, Columns.Count).End(XlToLeft).Offset(0, 1).PasteSpecial Paste:=xlPasteAll

a+
 
Re : Macro pour compiler des données les unes a côté des autres

Regarde la pièce jointe Exemple.xls
Salut,
La suppression de la feuille "compilation" me sert s'il y a mise à jour des données et que je dois regénérer la compilation (supprime l'ancienne, me donne une nouvelle).
En pièce jointe tu trouveras un aperçu de ce que je cherche à faire (je l'ai fait manuellement, je voudrais l'automatiser vu le nombre d'onglets dont il s'agit).
En réalité, j'ai un fichier contenant environ 70 onglets. Dans chacun des onglets, sur la même plage se trouve un tableau.
Je dois réunir tous ces tableaux dans un même onglet et les placer les uns à côté des autres. Grâce à la macro ci-dessus, je peux les réunir sur le même onglet mais ils se trouvent les un en dessous des autres.

Voila, j'espère que j'ai été plus claire.

Merci de t'êtr penchée sur mon problème
 

Pièces jointes

Re : Macro pour compiler des données les unes a côté des autres

Re, lila,
utilise le code donné par mromain
et remplace ceci
Code:
Set plage = sh.Range("v7147:ac7191" & sh.Cells(Rows.Count, "a").End(3).Row)
plage.Copy
par ( s'il n'y a que la colonne A à copier comme dans ton exemple joint)
Code:
Columns("A:A").Select
    Selection.Copy
sinon, tu adaptes la zone de cellules à copier
 
Re : Macro pour compiler des données les unes a côté des autres

Bonjour,

Désolée si j'ai pas été assez précise.J'ai également tenté avec ta méthode, mais ca ne marche toujours pas. Finalement j'ai essayé de contourner le problème en utilisant une autre macro, que je détaille ci dessous. C'est certainement pas le moyen le plus simple (nécéssité de faire la macro pour chaque cellule de mon tableau), mais vu que mon tableau ne comporte que 5-6 lignes et une colonne, c'était plus facile que de chercher une solution au pb. (je suis débutante en vba!)
Merci à tous les deux en tout cas de vous être penchés sur le sujet.

Bonne soirée

Sub recap()
For Each sh In Sheets
Dim i As Integer
i = i + 1
Cells(1, i) = sh.Cells(a,b) : (a,b)représentant une cellule de mon tableau.
Next
End Sub
 
Re : Macro pour compiler des données les unes a côté des autres

Bonjour à tous,


Le code donné içi est génial est fait ce que je cherche à faire, cepandant, est-ce que quelqu'un peut m'aider à le modifier pour qu'il copie la colone A de chaque 1er onglet de tous les fichiers présent dans le Dossier actif (la où je mettrais le fichier excell contenant la macro)


je remet le code que Fo_rum à modifié pour lila2005 et qui est presque ce que je veuoudrai reussir à obtenir

Code:
Sub jj()
  Dim sh As Worksheet
  Application.DisplayAlerts = False
  On Error Resume Next
  Sheets("Compilation").Delete
  Application.DisplayAlerts = True
  On Error GoTo 0
  Sheets.Add
  ActiveSheet.Name = "Compilation"
  [a1] = "Compilation"
  For Each sh In [COLOR="Red"]ActiveWorkbook[/COLOR].Sheets
    If sh.Name <> "Compilation" Then
      [COLOR="Lime"]Dercol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
      sh.Range("A1:A" & sh.Cells(Rows.Count, "A").End(3).Row).Copy Sheets("Compilation").Cells(1, Dercol + 1)[/COLOR]
    End If
  Next
End Sub

ce que j'ai mis en rouge, peut-on le didouiller pour indiquer : "active directory" ? et ensuite indiquer "first sheet of each file"?
inutile de dire que je suis moins que débutant en VBA

cordialement
Guillaume
 
Re : Macro pour compiler des données les unes a côté des autres

ah, petite modification sur ce que je souhaiterais,
peut ton lui dire de chercher dans 3 niveaux de sous dossier ?


Cordialement
Guillaume
 
Re : Macro pour compiler des données les unes a côté des autres

dsl de faire re-remonter ce sujet, j'aurais besoin de pouvoir faire fonctionner cette macro dans le cadre de mon activité professionnelle.


Il faudrait copier la premiere colone de de chaque premier onglet de tous les classeurs d'un dossier contenant jusqu'a 3 sous niveaux de dossiers.

Pour info, il est possible que dans un meme dossier, des classeurs differents aient quand même le même nom de premier onglet (vierge), je ne sais pas si cela pose un problème ou pour le codage


Cordialement
Guillaume
 
Re : Macro pour compiler des données les unes a côté des autres

alors, y a t'il un XLDnaute Barbatruc pour m'aider dans la salle ????


je reposte la modification pour laquelle j'aimerais de l'aide, je joins un fichier qui explique ce que je cherche à faire
je sais que j'ai déjà posté au moins 4 messages à ce sujet mais j'ai besoin de trouver une solution à cet obstacle

le texte :
je souhaite copier toutes les colones L de chaque 1er onglet de tous les fichier présent dans un dossier contenant 3 sous niveaux.
cette colone est le résultat d'une somme, donc il faut oubien créer un lien ou alors un collage spécial.


le code (pas de moi) :
Code:
Sub jj()
  Dim sh As Worksheet
  Application.DisplayAlerts = False
  On Error Resume Next
  Sheets("Compilation").Delete
  Application.DisplayAlerts = True
  On Error GoTo 0
  Sheets.Add
  ActiveSheet.Name = "Compilation"
  [a1] = "Compilation"
  For Each sh In ActiveWorkbook.Sheets
    If sh.Name <> "Compilation" Then
      Dercol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
      sh.Range("L1:L" & sh.Cells(Rows.Count, "L").End(3).Row).Copy Sheets("Compilation").Cells(1, Dercol + 1)
    End If
  Next
End Sub

la piece jointe est comentée pour plus de clareté :

Cordialement
Guillaume
 

Pièces jointes

- 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
0
Affichages
964
Réponses
3
Affichages
951
Réponses
15
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…