Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier des lignes non vides d'un autre fichier et coller

  • Initiateur de la discussion Initiateur de la discussion zizoufan
  • Date de début Date de début

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 !

zizoufan

XLDnaute Occasionnel
Bonjour à tous,

j'ai créé un bout de code en VBA me permettant de consolider sur un fichier qui s'appelle "consolidé" l'ensemble des données sur d'autres fichiers. Le seul problème que j'ai est que je n'arrive pas à paramétrer le code de telle façon à prendre toutes les lignes non vides dans les fichiers "assistance" et "test" avant de les coller.

Sub Consolidé()
' Consolidé Macro
Dim lgLigFinH As Long

Workbooks.Open ("C:\Users\PC\Desktop\test\assistance.xlsm")
Sheets("BD").Select
Range("A2:H6").Select
Selection.Copy
Windows("consolidé.xlsm").Activate
Sheets("Feuil3").Select
Range("A2").Select
ActiveSheet.Paste
Columns("B:B").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("D😀").EntireColumn.AutoFit
Columns("D😀").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Columns("G:G").EntireColumn.AutoFit
Windows("assistance.xlsm").Activate
ActiveWindow.Close
Sheets("Feuil3").Select
' Dernière ligne vide dans la feuille Historique
lgLigFinH = Worksheets("Feuil3").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Workbooks.Open ("C:\Users\PC\Desktop\test\test.xlsm")
Sheets("BD").Select
Range("A2:H6").Select
Selection.Copy
Windows("consolidé.xlsm").Activate
Sheets("Feuil3").Select
Worksheets("Feuil3").Range("A" & lgLigFinH).Select
ActiveSheet.Paste


End Sub

Merci de votre aide
---------------------------

Je joins le fichier cible et les fichiers sources
 

Pièces jointes

Re : copier des lignes non vides d'un autre fichier et coller

Salut Zizoufan

Voici un code avec annotations, j'espère qu'il sera asses compréhensible pour toi 😉
VB:
Sub Consolidé()
' Consolidé Macro
  Dim Dlig As Long
  Dim sPath As String
  Dim Ind As Integer, TabWbk() As String
  Dim Wbk As Workbook
  ' Comme on copie la même feuille de chaque classeur on peut utiliser un tableau de ceux-ci
  ' Initialiser le tableau des classeurs à ouvrir, à séparer par des virgules
  TabWbk = Split("assistance.xlsm,test.xlsm", ",")
  ' Chemin par défaut contenant les fichiers
  sPath = ThisWorkbook.Path & "\"
  ' Pour chaque valeur du tableau
  For Ind = 0 To UBound(TabWbk)
    ' Ouvrir le classeur
    Set Wbk = Workbooks.Open(sPath & TabWbk(Ind))
    ' Avec la feuille BD
    With Wbk.Sheets("BD")
      ' Récupérer le numéro de la dernière ligne remplie
      Dlig = .Range("A" & Rows.Count).End(xlUp).Row
      ' Copier l'ensemble des données
      ' Destination = Prochaine cellule vide de ce classeur
      .Range("A2:H" & Dlig).Copy Destination:=ThisWorkbook.Sheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
    End With
    Wbk.Close Savechanges:=False
  Next Ind
End Sub

A+
 
Re : copier des lignes non vides d'un autre fichier et coller

Bonjour Bruno,

c'est parfait. Et oui j'ai bien compris la logique des choses 🙂
j'ai juste un petit souci c'est que je suis obligé de taper un mot de passe à chaque ouverture de fichier. Puisqu'il s'agit du même mot de passe pour tous les fichiers. Y a t il un moyen des les ouvrir d'un seul coup ??

Merci par avance
 
Re : copier des lignes non vides d'un autre fichier et coller

Re,

Oui c'est dans le propriétés existantes
Code:
Set Wbk = Workbooks.Open(sPath & TabWbk(Ind), Password:="TonMdp")

A+
 
Re : copier des lignes non vides d'un autre fichier et coller

Bruno,

Merci pour ta réactivité.
Pour ce dernier point je me suis mal exprimé. En fait si tu ouvres le fichier avec le macro de consolidé tu es obligé de taper un identifiant et un mot de passe. Y a t -il une manière de désactiver ces formulaires lors du consolidé ? Merci

Cordialement,
 
Re : copier des lignes non vides d'un autre fichier et coller

Re,

Heuu pas sur celui que tu as mis sur le forum.

Désolé, mais je ne comprends vraiment pas ta demande

A+
 
Re : copier des lignes non vides d'un autre fichier et coller

Bruno,

les fichiers que je veux consolider contiennent tous des restrictions d'accès. Si je suis Manager j'accède à deux feuilles seulement, si je suis admin j'accède à toutes les feuilles. le manager accède à ses feuilles en tapant un identifiant et un mot de passe (géré par VBA)
Quand j'exécute la macro de consolidation, il ouvre effectivement les fichiers mais il me demande un identifiant et un mot de passe.
Cela existe il aussi dans les propriétés aussi comme tu l'as indiqué ci-haut ?
Set Wbk = Workbooks.Open(sPath & TabWbk(Ind), Password:="TonMdp")
 
- 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
4
Affichages
917
Réponses
22
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…