Bonjour à tous,
Tout d'abord je vous prie de m'excuser si le sujet a déjà été abordé.
Je possède deux classeurs :
- Le premier est généré automatiquement plusieurs fois par mois depuis un logiciel tiers.
- Le deuxième est mon classeur, celui ou je récupère certaines colonnes du premier classeur, qui contient des tableaux s'incrémentant selon mes colonnes extraites.
J'ai adapté un code que j'ai trouvé sur un forum pour réaliser cette extraction, le voici :
Option Explicit
Dim f1 As Worksheet, plage As Range
Dim derln&, I&, col
Sub Récupérer()
On Error Resume Next
Set f1 = Workbooks("Classeur1").Sheets("Feuil1")
If Err > 0 Then
MsgBox "Vous devez ouvrir le fichier ''Classeur1.xlsx'' qui doit avoir une feuille 'Feuil1'.", 16
Exit Sub
End If
derln = f1.UsedRange.Rows.Count
For I = 1 To 13
col = Choose(I, "A", "C", "D", "G", "J", "K", "L", "M", "BK", "BL", "AH", "AI", "AE")
f1.Range(col & "1:" & col & f1.Range(col & Rows.Count).End(xlUp).Row).Copy Cells(2, I)
Next I
End Sub
Ce code fonctionne très bien, à condition de renommer le classeur en "Classeur1", que ma feuille ou je souhaite extraire les colonnes en "Feuil1", et que ce classeur reste ouvert. J'aurais souhaité faire la même chose sans devoir renommer mon classeur et ma feuille mais au moins ça fonctionne.
Ce que j'aimerais faire, c'est mettre à jour mon deuxième classeur, c'est à dire si le matricule de la colonne D de ma "Feuil1" de mon "Classeur1" existe déjà après mon extraction dans mon classeur2 (l'emplacement de ce matricule dans mon classeur2 est à la colonne C), alors ne rien faire. S'il n'existe pas, l'ajouter en bas de la liste de mon classeur avec toutes les autres colonnes demandés.
En gros, j'ai mon bouton "récupérer", j'aimerais avoir aussi un bouton "mettre à jour".
Je n'ai que très peu de connaissances en VBA, toute aide serait importante pour moi.
D'avance merci
Tout d'abord je vous prie de m'excuser si le sujet a déjà été abordé.
Je possède deux classeurs :
- Le premier est généré automatiquement plusieurs fois par mois depuis un logiciel tiers.
- Le deuxième est mon classeur, celui ou je récupère certaines colonnes du premier classeur, qui contient des tableaux s'incrémentant selon mes colonnes extraites.
J'ai adapté un code que j'ai trouvé sur un forum pour réaliser cette extraction, le voici :
Option Explicit
Dim f1 As Worksheet, plage As Range
Dim derln&, I&, col
Sub Récupérer()
On Error Resume Next
Set f1 = Workbooks("Classeur1").Sheets("Feuil1")
If Err > 0 Then
MsgBox "Vous devez ouvrir le fichier ''Classeur1.xlsx'' qui doit avoir une feuille 'Feuil1'.", 16
Exit Sub
End If
derln = f1.UsedRange.Rows.Count
For I = 1 To 13
col = Choose(I, "A", "C", "D", "G", "J", "K", "L", "M", "BK", "BL", "AH", "AI", "AE")
f1.Range(col & "1:" & col & f1.Range(col & Rows.Count).End(xlUp).Row).Copy Cells(2, I)
Next I
End Sub
Ce code fonctionne très bien, à condition de renommer le classeur en "Classeur1", que ma feuille ou je souhaite extraire les colonnes en "Feuil1", et que ce classeur reste ouvert. J'aurais souhaité faire la même chose sans devoir renommer mon classeur et ma feuille mais au moins ça fonctionne.
Ce que j'aimerais faire, c'est mettre à jour mon deuxième classeur, c'est à dire si le matricule de la colonne D de ma "Feuil1" de mon "Classeur1" existe déjà après mon extraction dans mon classeur2 (l'emplacement de ce matricule dans mon classeur2 est à la colonne C), alors ne rien faire. S'il n'existe pas, l'ajouter en bas de la liste de mon classeur avec toutes les autres colonnes demandés.
En gros, j'ai mon bouton "récupérer", j'aimerais avoir aussi un bouton "mettre à jour".
Je n'ai que très peu de connaissances en VBA, toute aide serait importante pour moi.
D'avance merci