Aide sur cette Macro SVP

Mister Binaire

XLDnaute Occasionnel
Bonjour le forum,

Cette macro (voir ci-dessous) qui recopie les datas de différents onglets dans un onglet nommé "Master Data"fonctionnait très bien avec mon premier classeur qui ne comportait que 4 onglets.
Dans ma version finale qui comporte beaucoup plus d'onglets un message d'erreur indique que le copier/coller ne peut pas s'effectuer pour un pbl de format.

Je joints ma version finale en pj en espérant que quelqu'un puisse m'aider.

Merci à vous ..


Option Explicit
Sub Macro1()
Dim OD As Object 'déclare la variable OD (Onglet de Destination)
Dim O As Object 'déclare la variable O (Onglets)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OD = Sheets("Master Data") 'définit l'onglet OD
For Each O In Sheets 'boucle sur tous les onglets O du classeur
Select Case O.Name 'agit en fonction du nom de l'onglet O
'cas "Sommaire", "Formulaire Demande", "Formulaire Process" et "Master Data", rien ne se passe
Case "Sommaire", "Formulaire Demande", "Formulaire Process", "Master Data"
Case Else 'tous les autres cas
'définit la cellule de destination DEST (A1 si A1 est vide sinon, la première cellule vide de la ligne 1)
Set DEST = OD.Range("A65536").End(xlUp).Offset(1, 0)
Range(O.Range("A1"), O.Range("A1").End(xlDown).Offset(0, 3)).Copy DEST
End Select 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub
 

Pièces jointes

  • STD Work Trame Process Labo Béta 7.06.zip
    266.7 KB · Affichages: 23
  • STD Work Trame Process Labo Béta 7.06.zip
    266.7 KB · Affichages: 21
  • STD Work Trame Process Labo Béta 7.06.zip
    266.7 KB · Affichages: 23

Bebere

XLDnaute Barbatruc
Re : Aide sur cette Macro SVP

bonjour
erreur vient de: O.Range("A1").End(xlDown).Row =65536(excel2003 dernière ligne)
changer
Code:
Range(O.Range("A1"), O.Range("A1").End(xlDown).Offset(0, 3)).Copy DEST
par
Code:
            Range(O.Range("A1"), O.Range("A65536").End(xlUp).Offset(0, 3)).Copy DEST
 

Mister Binaire

XLDnaute Occasionnel
Re : Aide sur cette Macro SVP

Bonjour Bebere, Bonjour le forum,

Merci de ton aide Bebere et vraiment bien vu cela marche à merveille.

Cependant, les entêtes des colonnes des onglets vides sont aussi recopiés que faut il rajouter pour éviter cela ???

Merci de ton aide !!
 

Bebere

XLDnaute Barbatruc
Re : Aide sur cette Macro SVP

essaye comme suit
Code:
Sub Macro1()
Dim OD As Object 'déclare la variable OD (Onglet de Destination)
Dim O As Object 'déclare la variable O (Onglets)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim L As Long
Set OD = Sheets("Master Data") 'définit l'onglet OD
For Each O In Sheets 'boucle sur tous les onglets O du classeur
    Select Case O.Name 'agit en fonction du nom de l'onglet O
        'cas "Sommaire", "Formulaire Demande", "Formulaire Process" et "Master Data", rien ne se passe
        Case "Sommaire", "Formulaire Demande", "Formulaire Process", "Master Data"
        Case Else 'tous les autres cas
            'définit la cellule de destination DEST (A1 si A1 est vide sinon, la première cellule vide de la ligne 1)
            Set DEST = OD.Range("A65536").End(xlUp).Offset(1, 0)
            L = O.Range("A65536").End(xlUp).Row 'adapter 65536 si nécessaire
           If L > 1 Then Range(O.Range("A1"), O.Range("A" & L).Offset(0, 3)).Copy DEST
    End Select 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub
 

Discussions similaires

Réponses
2
Affichages
113

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 009
dernier inscrit
dede972