Dupliquer 53 onglets et coller les données dans 53 onglets d'un fichier different

vidou

XLDnaute Junior
Bonjour,

J'ai repris depuis l'ecriture VBA pour me faciliter la tache !

Il y a 2 fichiers sources ( A et B ) et un fichier destination ( C )

Dans le fichier destination, je souhaiterai balayer les onglets 1 a 53 et copie les données pour les décharger dans le fichier destination et dans l'onglet correspondant ( ex onglet 1 du fichier A et B dans l'onglet 1 du fichier C )

Pour commencer, je partirai à partir de ce code dans lequel je souhaite intégrer le balayage des onglets d'un fichier différent

Comme j'aime bien comprendre ce que je fais, si vous pourriez m'aider pour cette partie de code ( balayage ) en y indiquant ce que le code effectue ( sinon je ferai du pas à pas )

Merci d'avance

et bonne journée

David

HTML:
Sub Extraction_commande()


Dim tabCom(10000, 15) As Variant
Dim y As Integer

' supprimer les données de 2KE_SDS

Worksheets("2KE_SDS").Select

Call supp_extraction



Worksheets("COM").Select
Range("A2571").Select

'Copie des données dans le tableau virtuel commande
While ActiveCell.Value <> ""

    If ActiveCell.Offset(0, 0).Value = "COM" Then
       
       y = y + 1
        tabCom(y, 1) = ActiveCell.Offset(0, 13).Value
        tabCom(y, 2) = ActiveCell.Offset(0, 3).Value
        tabCom(y, 3) = ActiveCell.Offset(0, 12).Value
        tabCom(y, 4) = ActiveCell.Offset(0, 4).Value
        tabCom(y, 5) = ActiveCell.Offset(0, 14).Value
        tabCom(y, 6) = ActiveCell.Offset(0, 1).Value
        tabCom(y, 7) = ActiveCell.Offset(0, 18).Value
        tabCom(y, 8) = ActiveCell.Offset(0, 11).Value
        tabCom(y, 9) = ActiveCell.Offset(0, 15).Value
        tabCom(y, 10) = ActiveCell.Offset(0, 6).Value
     
    End If
    
ActiveCell.Offset(1, 0).Select

Wend

Worksheets("2KE_SDS").Select
Range("A2").Select

For i = 1 To y

    ActiveCell.Offset(0, 2).Value = tabCom(i, 1)
    ActiveCell.Offset(0, 5).Value = tabCom(i, 2)
    ActiveCell.Offset(0, 6).Value = tabCom(i, 3)
    ActiveCell.Offset(0, 7).Value = tabCom(i, 4)
    ActiveCell.Offset(0, 8).Value = tabCom(i, 5)
    ActiveCell.Offset(0, 9).Value = tabCom(i, 6)
    ActiveCell.Offset(0, 10).Value = tabCom(i, 7)
    ActiveCell.Offset(0, 14).Value = tabCom(i, 8)
    ActiveCell.Offset(0, 19).Value = tabCom(i, 9)
    ActiveCell.Offset(0, 20).Value = tabCom(i, 10)
    
    ActiveCell.Offset(1, 0).Select
    
    
Next i

End Sub
 

gosselien

XLDnaute Barbatruc
Re : Dupliquer 53 onglets et coller les données dans 53 onglets d'un fichier differen

Bonjour,

comme tu le verras souvent ici, il est préférable de mettre ici un exemple de fichier Xl pour que les spécialistes s'y penchent :)
et tu auras des réponses...

edit: pas 53 onglets, mais 3 ou 4 de quelques lignes :)
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Dupliquer 53 onglets et coller les données dans 53 onglets d'un fichier differen

Bonjour Vidou , @ Salutations Gosselien

Bon comme tu veux apprendre , j'ai volontairement laissé ma boucle vide au niveau du traitement .

Il suffit de faire ensuite une boucle maitresse parcourant les 2 ou X fichiers afin de réaliser ton souhait

A toi de jouer ,

Code:
Sub Traite()

Dim Classeur As String, Texte As String
Dim Onglet As Worksheet

 Texte = "MonFichier.xlsx"

 Classeur = Dir(ThisWorkbook.Path & "\ " & Texte)
 Workbooks.Open (ActiveWorkbook.Path & "\" & Classeur)

  For Each Onglet In Workbooks(Classeur).Worksheets
    'et la et bien , l'on traite la feuille pointée par la boucle
    
    
  Next

 Workbooks(Classeur).Close

End Sub
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Dupliquer 53 onglets et coller les données dans 53 onglets d'un fichier differen

Re ,

A oui la variable Y serait mieux en étant déclarée en Long , puisque tu traites un numéro de ligne, afin de ne pas risquer un débordement de capacité ...
 

Statistiques des forums

Discussions
312 394
Messages
2 088 018
Membres
103 700
dernier inscrit
franck42