XL 2016 transfert de données d'un onglet vers un autre classeur sous conditions

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 !

dindin

XLDnaute Occasionnel
bonjour le Forum
j'ai un onglet BDD dans un classeur 1.
je suis amené tous les jours à le copier sous conditions vers un autre classeur 2 sous condition:
copier que les lignes dont la colonne A contient : à facturer .
copie à l'identique c'est à dire la mise en page et formule et couleur ...etc
y a t'il moyen de faire cette manip via VBA discrètement et sans ouvrir le classeur.
pour info:
les 2 classeurs sont enregistrés dans le même fichier.
les 2 classeurs ne contiennent pas de mot de passe
je vous joins le classeur source.
 

Pièces jointes

Je ne suis pas sûr du tout de savoir le faire. Esr-ce qu'on ne peut pas l'ouvrir de façon invisible le temps de la copie ? On peut alors copier les couleurs, les formules et tout ? Il me faut alors connaître le nom du classeur ainsi que celui de la feuille dans laquelle les données sont copiées. Et savoir quelle genre de copie : copie simple ? Copie en ajout des données ?

Daniel
 
Je ne suis pas sûr du tout de savoir le faire. Esr-ce qu'on ne peut pas l'ouvrir de façon invisible le temps de la copie ? On peut alors copier les couleurs, les formules et tout ? Il me faut alors connaître le nom du classeur ainsi que celui de la feuille dans laquelle les données sont copiées. Et savoir quelle genre de copie : copie simple ? Copie en ajout des données ?

Daniel
Ok
Le 2ème classeur : copie 2020
Onglet : bdd
Copie en effaçant la feuille de destination à chaque fois et recopie de la base avec les données.
 
Ceci copie aussi les couleurs et les formules :

VB:
Sub Copie()
  Dim Wbk As Workbook, Plage As Range
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Set Wbk = GetObject(ThisWorkbook.Path & "\Copie 2020.xlsm")
  Application.EnableEvents = True
  With Sheets("BDD")
    .Cells.AutoFilter 1, "à facturer"
    Set Plage = .AutoFilter.Range
  End With
  With Wbk.Sheets("BDD")
    .Cells.ClearContents
    Plage.Copy .[A1]
  End With
  Wbk.Close True
  Cells.AutoFilter
  Application.ScreenUpdating = True
End Sub

Important : Il faut mettre cette macro dans le module ThisWorkbook du classeur Copie 2020 :

Code:
Private Sub Workbook_Open()
  Windows(ThisWorkbook.Name).Visible = True
End Sub
 
Ceci copie aussi les couleurs et les formules :

VB:
Sub Copie()
  Dim Wbk As Workbook, Plage As Range
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Set Wbk = GetObject(ThisWorkbook.Path & "\Copie 2020.xlsm")
  Application.EnableEvents = True
  With Sheets("BDD")
    .Cells.AutoFilter 1, "à facturer"
    Set Plage = .AutoFilter.Range
  End With
  With Wbk.Sheets("BDD")
    .Cells.ClearContents
    Plage.Copy .[A1]
  End With
  Wbk.Close True
  Cells.AutoFilter
  Application.ScreenUpdating = True
End Sub

Important : Il faut mettre cette macro dans le module ThisWorkbook du classeur Copie 2020 :

Code:
Private Sub Workbook_Open()
  Windows(ThisWorkbook.Name).Visible = True
End Sub
Merci je regarde demain et vous tiens au courant
 
- 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
9
Affichages
379
Retour