Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2006, 10h19   #1
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut Exporter tous les userform d'un projet

Silky nous a passé le code pour exporter un userform
De là, j'ai modifié la ligne de commande afin d'exporter tous les userforms d'un projet. Le code :
Code :
1
2
3
4
5
Sub ExporterTousLesUserforms() 
    For Each LaForm In ThisWorkbook.VBProject.VBComponents("UserForm1")
        LaForm.Export OutputFileName:="D:\frm\" & LaForm.Name
    Next
End Sub
or la procédure bloque sur "Export"
Message : "Membre de méthode ou de données introuvable"
Si je fais "Msgbox LaForm.name, j'ai bien le nom de l'userform
En VBA97, la syntaxe pour Export correspond à celle de l'aide
Aucune référence n'est marquée manquante dans VBA

Si quelqu'un a une idée...

Par avance, merci (j'ai 31 form à exporter pour aider un pauv' gars qu'à lui-même un problème et qui s'arrache les cheveux -> http://www.developpez.net/forums/sho...d.php?t=179647 pour ceux que ça intéresse )
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h26   #2
Expert Confirmé Sénior

 
Avatar de bidou
 
Inscription : mai 2002
Messages : 3 052
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 3 052
Points : 4 101
Points : 4 101
tu as bien la référence VBE ?
__________________
Tutoriels VB
Cours
bidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h32   #3
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour

tu peux tester cette syntaxe

Code :
1
2
3
4
5
6
7
8
9
'necessite d'activer la référence
'"Microsoft Visual Basic for Applications Extensibility 5.3 "
'
Dim VBComp As VBComponent
 
For Each VBComp In ThisWorkbook.VBProject.VBComponents
    If VBComp.Type = 3 Then _
        VBComp.Export "C:\" & VBComp.Name & ".frm"
Next VBComp


bonne journée
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h33   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu veux dire une référence MANQUANTE ? Non, je n'ai aucune indication et l'aide me conduit au message bateau
Citation:
"Membre de méthode ou de données introuvable"
La collection, l'objet ou le type défini par l'utilisateur ne contient pas le membre référencé. Causes et solutions de cette erreur :

· Une faute de frappe s'est glissée dans le nom de l'objet ou du membre.
etc
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h39   #5
Expert Confirmé Sénior

 
Avatar de bidou
 
Inscription : mai 2002
Messages : 3 052
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 3 052
Points : 4 101
Points : 4 101
non, je veux parler de la référence citée au début du code de Michel
__________________
Tutoriels VB
Cours
bidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h55   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Hello Michel,
Avec ce nouveau code, la procédur bloque sur
Citation:
For Each VBComp In ThisWorkbook.VBProject.VBComponents
Message "Type incompatible"
Bidou, je ne vois pas de quelle référence tu veux parler
Le code qu'il a fourni au départ était cette ligne
Code :
ThisWorkbook.VBProject.VBComponents("UserForm1").Export "C:\copieUSF.frm"
Qui fonctionne parfaitement
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h56   #7
Expert Confirmé Sénior

 
Avatar de bidou
 
Inscription : mai 2002
Messages : 3 052
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 3 052
Points : 4 101
Points : 4 101
Microsoft Visual Basic for Applications Extensibility 5.3
__________________
Tutoriels VB
Cours
bidou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h58   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
le code à michel fonctionne chez moi sous excel 2002... sans référence particuliéres en modifiant la ligne

Code :
1
2
 
Dim VBComp ' As VBComponent
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h59   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok, j'ai compris. Je corrige et je mets résolu dès que c'est résolu
Je voulais exporter Userform1 alors que je dois exporter LaForm.
Citation:
Sub ExporterTousLesUserforms()
For Each LaForm In ThisWorkbook.VBProject.VBComponents("UserForm1")
LaForm.Export OutputFileName:="D:\frm\" & LaForm.Name
Next
End Sub
Reste plus qu'à voir par quoi je dois remplacer Userform1 (je croyais que c'était une contante)
Merci à vous deux
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 11h05   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
je comprends pas : avec cette ligne
Code :
     For Each LaForm In ThisWorkbook.VBProject.VBComponents("UserForm1")
tu parcours tous les objets présent sur l'userForm1....

et non pas toutes les userforms....! (voir code michel)

Que ve tu faire ?+
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 12h08   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok ! (Là je reviens du marché...) Merci à tous. Désolé, bbil, si ça fonctionne chez toi sans rien changer au code de Michel mais chez moi, ça marche pas tel quel.
J'ai VBA97 et en torturant un pneu, j'y suis arrivé. Je mets le code à toutes fins utiles.
Code :
1
2
3
4
5
6
7
Sub ExporterTousLesUserforms() 'selon SilkyRoad
Dim LaForm
    For Each LaForm In ThisWorkbook.VBProject.VBComponents
        'MsgBox LaForm.Name
        If LaForm.Type = 3 Then ThisWorkbook.VBProject.VBComponents(LaForm.Name).Export "D:\xls\" & LaForm.Name & ".frm"
    Next
End Sub
si je n'utilise pas le nom de la form dans cette ligne
Citation:
.........If LaForm.Type = 3 Then ThisWorkbook.VBProject.VBComponents(LaForm.Name) _
..........................................Export "D:\xls\" & LaForm.Name & ".frm"
j'ai une erreur. Donc ainsi ça fonctionne et si on peut simplifier, je verrai plus tard.
Reste à importer mais là, je devrais pouvoir me débrouiller
Encore merci
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 12h57   #12
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Pour importer tous les userform
Code :
1
2
3
4
5
6
7
8
Sub ImporterTousLesUserformsDunRépertoire() 'd'après SilkyRoad
Dim NomFich
    NomFich = Dir("D:\xls\*.frm")
    Do While NomFich <> ""
        Application.VBE.ActiveVBProject.VBComponents.Import (NomFich)
        NomFich = Dir
    Loop
End Sub
Placer la macro dans un module du projet "récepteur"
A toutes fins utiles
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 13h02   #13
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
bien, voilà qui est interessant
hop, un petit tag FAQ
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 13h05   #14
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par ouskel'n'or
Ok ! (Là je reviens du marché...) Merci à tous. Désolé, bbil, si ça fonctionne chez toi sans rien changer au code de Michel mais chez moi, ça marche pas tel quel....
bon je me suis décidé à démarrer mon vieux Pentium III pour tester le code à michel ( #3 ) sous Excel 97 ... et celui-ci fonctionne tel quel, en cochant la bonne référence , ou en déclarant la variable VBComp en variant...
Code :
Dim VBComp ' As VBComponent
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 14h05   #15
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ok, bbil, mais moi, ça marche pas. Peut-être un pb de bibliothèque. Jète un oeil là http://www.developpez.net/forums/sho...d.php?t=181795
Si tu as une idée je dirai partout que tu es le meilleur
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h07.


 
 
 
 
Partenaires

Hébergement Web