Importer données d'un document Excel à un autre
Bonjour à tous !
Je suis très débutante avec VBA et je suis bloquée dans ce que je souhaite faire.
J'aimerais être en mesure d'importer certaines cellules d'une document Excel (Profil type) dans un autre document Excel (Données statistiques).
La macro était déjà existante, mais elle permet d'importer un document Word dans Excel.
Je vous la met ici en exemple :
Private Sub CommandButton1_Click()
Dim Wd As Word.Application
Dim filename As String
Dim i As Byte
'On affiche la boite de dialogue pour sélectionner le fichier
filename = Application.GetOpenFilename("Fichier Word (*.doc*),*.doc*", 1, "Sélectionnez un document Word", "Ouvrir", False)
'On vérifie qu'un fichier a été sélectionné
If filename <> "" Then
filename = LCase(filename)
'et qu'il s'agit d'un document word
If Right(filename, 3) = "doc" Or Right(filename, 4) = "docx" Then
Rows("5").Insert
'Créer une instance de word
Set Wd = New Word.Application
With Wd
'Empêche Word de s'afficher à l'ouverture
.Visible = False
'Ouverture du document
.documents.Open (filename)
'If f.Type = 71 Then
' Cells(2, f.Index).Value = .ActiveDocument.FormFields(f.Index).CheckBox.Value
'Else 'autres champs
Cells(5, 2).Value = .ActiveDocument.FormFields("Nom").Result
Cells(5, 3).Value = .ActiveDocument.FormFields("Prénom").Result
Cells(5, 4).Value = .ActiveDocument.FormFields("DDN").Result
Cells(5, 5).Value = .ActiveDocument.FormFields("sed").Result
Cells(5, 6).Value = .ActiveDocument.FormFields("Age").Result
Cells(5, 7).Value = .ActiveDocument.FormFields("langue").Result
Cells(5, 8).Value = .ActiveDocument.FormFields("ref").Result
Cells(5, 9).Value = .ActiveDocument.FormFields("Autres").Result
Cells(5, 10).Value = .ActiveDocument.FormFields("numconseiller").Result
Cells(5, 11).Value = .ActiveDocument.FormFields("numarc").Result
Cells(5, 12).Value = .ActiveDocument.FormFields("Sentence1").Result
Cells(5, 13).Value = .ActiveDocument.FormFields("Dpc1").Result
Cells(5, 14).Value = .ActiveDocument.FormFields("puro").Result
Cells(5, 15).Value = .ActiveDocument.FormFields("IP").Result
Cells(5, 16).Value = .ActiveDocument.FormFields("VC").Result
Cells(5, 17).Value = .ActiveDocument.FormFields("Dfp1").Result
Cells(5, 18).Value = .ActiveDocument.FormFields("Dfr1").Result
Cells(5, 19).Value = .ActiveDocument.FormFields("Rapport1").Result
Cells(5, 20).Value = .ActiveDocument.FormFields("Motif1").Result
Cells(5, 21).Value = .ActiveDocument.FormFields("Statut1").Result
Cells(5, 22).Value = .ActiveDocument.FormFields("Fré1").Result
Cells(5, 23).Value = .ActiveDocument.FormFields("Cote1").Result
Cells(5, 24).Value = .ActiveDocument.FormFields("Mesure1").Result
Cells(5, 25).Value = .ActiveDocument.FormFields("Fermeture1").Result
Cells(5, 26).Value = .ActiveDocument.FormFields("Sentence2").Result
Cells(5, 27).Value = .ActiveDocument.FormFields("Dpc2").Result
Cells(5, 28).Value = .ActiveDocument.FormFields("Durée2").Result
Cells(5, 29).Value = .ActiveDocument.FormFields("Dfp2").Result
Cells(5, 30).Value = .ActiveDocument.FormFields("Dfr2").Result
Cells(5, 31).Value = .ActiveDocument.FormFields("Rapport2").Result
Cells(5, 32).Value = .ActiveDocument.FormFields("Motif2").Result
Cells(5, 33).Value = .ActiveDocument.FormFields("Statut2").Result
Cells(5, 34).Value = .ActiveDocument.FormFields("Fré2").Result
Cells(5, 35).Value = .ActiveDocument.FormFields("Cote2").Result
Cells(5, 36).Value = .ActiveDocument.FormFields("Mesure2").Result
Cells(5, 37).Value = .ActiveDocument.FormFields("Fermeture2").Result
Cells(5, 38).Value = .ActiveDocument.FormFields("Sentence3").Result
Cells(5, 39).Value = .ActiveDocument.FormFields("Dpc3").Result
Cells(5, 40).Value = .ActiveDocument.FormFields("Durée3").Result
Cells(5, 41).Value = .ActiveDocument.FormFields("Dfp3").Result
Cells(5, 42).Value = .ActiveDocument.FormFields("Dfr3").Result
Cells(5, 43).Value = .ActiveDocument.FormFields("Rapport3").Result
Cells(5, 44).Value = .ActiveDocument.FormFields("Motif3").Result
Cells(5, 45).Value = .ActiveDocument.FormFields("Statut3").Result
Cells(5, 46).Value = .ActiveDocument.FormFields("Fré3").Result
Cells(5, 47).Value = .ActiveDocument.FormFields("Cote3").Result
Cells(5, 48).Value = .ActiveDocument.FormFields("Mesure3").Result
Cells(5, 49).Value = .ActiveDocument.FormFields("Fermeture3").Result
Cells(5, 50).Value = .ActiveDocument.FormFields("Risquea").Result
Cells(5, 51).Value = .ActiveDocument.FormFields("Risqued").Result
'End If
'Ferme le document Word
.Quit False
End With
'Destruction de l'objet word
Set Wd = Nothing
End If
End If
End Sub
Pensez-vous qu'il est possible de l'adapter afin de pouvoir effectuer la même manipulation, mais de Excel à Excel ?
Cela fait plusieurs jours que j'essaie différentes choses trouvées sur différents forums, mais je n'y parviens tout simplement pas.
Merci mille fois pour votre aide
Bonjour,
Avec le peu d'information sur les cellules à importer ; vous devriez repartir à zéro au lieu d'essayer de modifier cette macro.
Utilisez l'enregistreur de macro pour réaliser vos importations une fois.
Vous aurez une bonne partie du code qui pourra être modifié si vous avez un souci.
Salut !
Merci de l'aide, je vais essayer avec l'enregistreur ! Je ne savais même pas que cela existait...