Compiler les données d'autres onglets dans un onglet "Compilation"
P
Bonjour à tous,
Débutante en VBA et après pas mal de recherche sur les forums, je n'arrive pas à comprendre mon erreur et comment la résoudre.
Je souhaite copier les données d'autres onglets dans un onglet appelé "Compilation". Il y a d'autres onglets à ignorer, en plus de Compilation, mais avec ce que j'ai écrit, l'onglet Compilation n'est jamais ignoré. Au contraire, la macro reste bloquée sur lui... Je ne sais plus quoi faire... Quelqu'un a une idée ? Merci !
Sub Compilation_Données()
'Compiler tous les prjets dans l'onglet "Compilation"
Dim wSheet As Worksheet
For Each wSheet In Worksheets
If wSheet.Name <> "Compilation" Then 'Or Worksheet.Name <> "Trame" Or Worksheet.Name <> "Synthèse par étape" Or Worksheet.Name <> "Synthèse par projet" Or Worksheet.Name <> "Procédure" Or Worksheet.Name <> "Nouveau projet" Then
'Copier les données
Range("A7").Select
Rows(ActiveCell.Row).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'Coller les données dans l'onglet "Compilation"
Sheets("Compilation").Select
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
Exit For
End If
Next wSheet
End Sub
E
Bonjour,
Il faudrait que tous les onglets à compiler aient leur ligne de titre à la ligne 7.
Option Explicit
Sub Compilation_Données()
'Compiler tous les projets dans l'onglet "Compilation"
Dim DerniereLigne As Integer, DerniereLigneCompil As Integer
Dim wSheet As Worksheet, ShCompil As Worksheet
Set ShCompil = Sheets("Compilation")
For Each wSheet In Worksheets
With ShCompil
DerniereLigneCompil = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
Select Case wSheet.Name
Case "Compilation", "Procédure", "Trame", "Nouveau projet"
Case Else
With wSheet
DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
If DerniereLigne > 7 Then
.Range(.Cells(7, 1), .Cells(DerniereLigne, 1)).Copy
ShCompil.Cells(DerniereLigneCompil + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End With
End Select
Next wSheet
Set ShCompil = Nothing
End Sub
bonjour,
Option Compare Text 'module insensible aux majuscules/minuscules
Sub Compilation_Données()
'Compiler tous les prjets dans l'onglet "Compilation"
Dim wSheet As Worksheet
For Each wSheet In Worksheets
Select Case wSheet.Name
Case "Compilation", "Trame", "Procédure", "Nouveau projet" 'feuilles à passer
Case Else
'Copier les données
Select Case wSheet.Name
Case "synthèse par projects": r1 = 5 '1iere ligne est 5
Case Else: r1 = 7 'toutes les autres feuille, 1iere ligne est 7
End Select
r = wSheet.Range("A" & Rows.Count).End(xlUp).Row 'row de la derniere ligne
If r >= r1 Then
wSheet.Range("A" & r1).Resize(r - r1 + 1).EntireRow.Copy
'Coller les données dans l'onglet "Compilation"
Sheets("Compilation").Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlValues 'or xlall
'Exit For
End If
End Select
Next wSheet
End SubP
1000 mercis ! Cela fonctionne !!