Mister Binaire
XLDnaute Occasionnel
Bonsoir le Forum,
Cette macro voir ci-dessous copie les datas localisés de D1 à 170 de chaque onglet dans l'onglet "Master Data" en colonne.
Je voudrais ( enfin ma hiérarchie) maintenant que les datas soient recopiés en ligne.
Pour être clair recopier les datas de l' onglet 1 dans l'onglet master data de D1 à D170
Recopier l'onglet 2 de D171 à D341
Recopier l'onglet 3 de D342 à D512 etc etc..
Parfois le champs d'un onglet de D1 à D170 n'est pas complet, il peut contenir 20 ou 30 valeurs le top serait que la recopie de l'onglet suivant commence à partir de la dernière valeur du précédent pour éviter les lignes blanches.
Merci de votre aide bien précieuse ...
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 = IIf(OD.Range("A1") = "", OD.Range("A1"), OD.Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
'condition : si le nombre de valeurs dans la plage est supérieur à 1
If Application.WorksheetFunction.CountA(O.Range("D1170")) > 1 Then
O.Range("D1170").Copy 'copie la plage D1170 de l'onglet O
'colle les valeurs dans DEST
DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If 'fin de la condition
End Select 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub
Cette macro voir ci-dessous copie les datas localisés de D1 à 170 de chaque onglet dans l'onglet "Master Data" en colonne.
Je voudrais ( enfin ma hiérarchie) maintenant que les datas soient recopiés en ligne.
Pour être clair recopier les datas de l' onglet 1 dans l'onglet master data de D1 à D170
Recopier l'onglet 2 de D171 à D341
Recopier l'onglet 3 de D342 à D512 etc etc..
Parfois le champs d'un onglet de D1 à D170 n'est pas complet, il peut contenir 20 ou 30 valeurs le top serait que la recopie de l'onglet suivant commence à partir de la dernière valeur du précédent pour éviter les lignes blanches.
Merci de votre aide bien précieuse ...
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 = IIf(OD.Range("A1") = "", OD.Range("A1"), OD.Cells(1, Application.Columns.Count).End(xlToLeft).Offset(0, 1))
'condition : si le nombre de valeurs dans la plage est supérieur à 1
If Application.WorksheetFunction.CountA(O.Range("D1170")) > 1 Then
O.Range("D1170").Copy 'copie la plage D1170 de l'onglet O
'colle les valeurs dans DEST
DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If 'fin de la condition
End Select 'fin de la condition
Next O 'prochain onglet de la boucle
End Sub