Compilation de donnée
Résolu/Fermé
Hugerato
Messages postés
10
Date d'inscription
jeudi 9 juillet 2009
Statut
Membre
Dernière intervention
30 novembre 2009
-
20 août 2009 à 15:23
Behippie Messages postés 14 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 31 janvier 2011 - 27 août 2009 à 15:58
Behippie Messages postés 14 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 31 janvier 2011 - 27 août 2009 à 15:58
2 réponses
Behippie
Messages postés
14
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
31 janvier 2011
21 août 2009 à 10:58
21 août 2009 à 10:58
Bonjour,
Petites question... Est-ce que les champs de tes formulaires ont tous un nom (Signet), si c'est le cas il est possible d'importer toutes les données via une macro...
J'ai du faire un travail similaire alors je peux peut-être aider...
Créer un module dans le classeur excel via le Microsot Visual Basic
Copier la macro ci-dessous
Sub Ici le nom de la macro ()
Dim Fich As Worksheet
Set Fich = ThisWorkbook.Worksheets("Ici le nom de l'onglet du classeur")
chemin = "Ici le chemin d'accès du dossier où sont mis tout tes formulaires\"
mesfichiers = Dir(chemin & "*.doc")
Dim Variables As Variant
Variables = Array("Ici les noms des Signets que tu veux importer Ex: "Nom", "Prénom", "Age", ...")
nb_Champs = Ici le nombre de champs que tu as mis juste en dessus
num_row = 1
i = 0
For i = 0 To nb_Champs - 1
Fich.Cells(num_row, i + 1) = Variables(i)
Next i
Set FichierWord = CreateObject("word.application")
FichierWord.Visible = True
FichierWord.DisplayAlerts = False
Do While mesfichiers <> ""
If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "Ici le nom du formulaire vierge.doc" Then
monDocument = chemin & mesfichiers
FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
num_row = num_row + 1
num_col = 1
For i = 0 To nb_Champs - 1
Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result
Next i
FichierWord.documents.Close (0)
End If
mesfichiers = Dir
Loop
FichierWord.Quit
End Sub
Pour finir, créer un bouton que tu affect a ta macro...
bon courage à toi, si il y a des soucis, n'hésite pas
Petites question... Est-ce que les champs de tes formulaires ont tous un nom (Signet), si c'est le cas il est possible d'importer toutes les données via une macro...
J'ai du faire un travail similaire alors je peux peut-être aider...
Créer un module dans le classeur excel via le Microsot Visual Basic
Copier la macro ci-dessous
Sub Ici le nom de la macro ()
Dim Fich As Worksheet
Set Fich = ThisWorkbook.Worksheets("Ici le nom de l'onglet du classeur")
chemin = "Ici le chemin d'accès du dossier où sont mis tout tes formulaires\"
mesfichiers = Dir(chemin & "*.doc")
Dim Variables As Variant
Variables = Array("Ici les noms des Signets que tu veux importer Ex: "Nom", "Prénom", "Age", ...")
nb_Champs = Ici le nombre de champs que tu as mis juste en dessus
num_row = 1
i = 0
For i = 0 To nb_Champs - 1
Fich.Cells(num_row, i + 1) = Variables(i)
Next i
Set FichierWord = CreateObject("word.application")
FichierWord.Visible = True
FichierWord.DisplayAlerts = False
Do While mesfichiers <> ""
If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "Ici le nom du formulaire vierge.doc" Then
monDocument = chemin & mesfichiers
FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
num_row = num_row + 1
num_col = 1
For i = 0 To nb_Champs - 1
Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result
Next i
FichierWord.documents.Close (0)
End If
mesfichiers = Dir
Loop
FichierWord.Quit
End Sub
Pour finir, créer un bouton que tu affect a ta macro...
bon courage à toi, si il y a des soucis, n'hésite pas
Hugerato
Messages postés
10
Date d'inscription
jeudi 9 juillet 2009
Statut
Membre
Dernière intervention
30 novembre 2009
25 août 2009 à 16:43
25 août 2009 à 16:43
Merci Beaucoup!
26 août 2009 à 12:10
j'ai exactement la même demande, j'ai donc copié cette macro et modifiée pour l'intégrer à mon prjoet, seulement quand je l'éxécute rien ne s'affiche. Je ne comprends pas pourquoi. Pourrais-tu jeter un coup d'oeil et m'aider?
Sub transfert()
Dim a As String
Dim Fich As Worksheet
Set Fich = ThisWorkbook.Worksheets("adm")
chemin = "C:\Documents and Settings\stagiaire\Mes documents\Péroline\Admissions\formulaire"
mesfichiers = Dir(chemin & "*.doc")
Dim Variables As Variant
Variables = "nom" & "prenom" & "nom_jeune_fille" & "sexe_M" & "sexe_F" & "lieu_naissance"
nb_Champs = 6
num_row = 1
i = 0
For i = 0 To nb_Champs - 1
If Fich.Cells(num_row, i + 1) = Variables Then
z = Fich.Cells(num_row, i + 1)
End If
Next i
Set FichierWord = CreateObject("word.application")
FichierWord.Visible = True
FichierWord.DisplayAlerts = False
Do While mesfichiers <> ""
If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "formulaire admission.doc" Then
monDocument = chemin & mesfichiers
FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
num_row = num_row + 1
num_col = 1
For i = 0 To nb_Champs - 1
Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(z)
Next i
FichierWord.documents.Close (0)
End If
mesfichiers = Dir
Loop
FichierWord.Quit
End Sub
Merci
27 août 2009 à 14:43
La première chose que je remarque c'est à la Variable (ligne 8)
Tu dois mettre le mot Array (liste) après le signe =, et les paranthèses....
Ex:
Variables = Array("Nom", "Prénom", "Age")
Bien copier la macro, mais laisser les paranthèses, les "" ,les / et \
Merci de me redire si ça joue
A+
27 août 2009 à 15:21
j'ai modifé comme tu me l'as dit mais rien ne s'affiche.
je te redonne ma macro :
Sub transfert()
Dim a As String
Dim Fich As String
Fich = "adm"
chemin = "C:\Documents and Settings\stagiaire\Mes documents\Péroline\Admissions\formulaire"
mesfichiers = Dir(chemin & "*.doc")
Dim Variables As Variant
Variables = Array("nom" & "prenom" & "nom_jeune_fille" & "sexe_M" & "sexe_F" & "lieu_naissance")
nb = 6
num = 1
i = 0
For i = 0 To nb_Champs - 1
If Sheets("formulaire").Cells(num, i + 1) = Variables Then
z = Sheets("formulaire").Cells(num, i + 1)
End If
Next i
Set FichierWord = CreateObject("word.application")
FichierWord.Visible = True
FichierWord.DisplayAlerts = False
Do While mesfichiers <> ""
If mesfichiers <> "." And mesfichiers <> ".." And mesfichiers <> "formulaire admission.doc" Then
monDocument = chemin & mesfichiers
FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
num = num + 1
col = 1
For i = 0 To nb - 1
Workbooks(Fich).Activate
Sheets("formulaire").Cells(num, i + 1) = FichierWord.activedocument.formfields(z)
Next i
FichierWord.documents.Close (0)
End If
mesfichiers = Dir
Loop
FichierWord.Quit
End Sub
Aucune erreur ne s'affiche mais les variables ne s'écirvent pas dans le classeur excel...
27 août 2009 à 15:46
Tu as plein de petites erreurs, as tu vraiment utilisé ma macro.... Pour hugerato ça a marché...
Utilises-tu copier/coller ? ou tu récris manuellement...
Pour pas te prendre le chou, copie la macro avec Ctrl+C, va dans ton module VBA et colle-la...
Tu n'a plus qu'a changer ce qui est en gras sans oublier ce que je t'ai dis dans le message précédent...
Au pire, envoi moi ton fichu dossier :-) J'y verrai plus claire....
A+
27 août 2009 à 15:54
j'avais copier ta macro mais comme ça ne marchait pas pour moi j'ai fais quelques petites modif... mais ça marche tjs pas!
je t'envoie mon dossier à quelle adresse?
Merci bcp de ton aide