Formulaire activant macro d'exportation xls --> txt

Fermé
Bulldozer54 Messages postés 1 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 3 décembre 2013 - 3 déc. 2013 à 17:51
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 - 5 déc. 2013 à 07:35
Bonjour à tous j'ai un petit problème :

J'ai créé une macro excel (en récupérant des bouts de code sur le net) qui me permet d'exporter le contenu d'un classeur xls dans un fichier txt. Cette macro fonctionne !!! (En faisant Affichage/Macro/Sélection de la macro puis exécuter)

Par contre j'ai voulu rendre encore plus commode son exécution en créant un formulaire dans lequel un clic sur un bouton déclenche la macro. ça a l'air de marcher.

Je souhaite que ce formulaire s'affiche automatiquement à l'ouverture du fichier excel (xlsm plus précisément) et c'est là que ça coince ! Pour réaliser cette dernière étape, j'ai collé ce code :

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Dans le ThisWorkbook. Et là il a pas l'air d'aprécier cas il me fait un :

Erreur d'exécution '424':
Objet requis

Je ne sais pas du tout quoi faire !

Voici le code de la macro :

Sub ExporterXlsEnTxt()
'
' ExporterXlsEnTxt Macro
Range("A1").CurrentRegion.Activate
Dim FileName As String
Dim Data
Dim r As Long, c As Integer
Dim NumRows As Long, NumCols As Integer
Dim ExpRng As Range
Set ExpRng = Application.Selection
NumRows = ExpRng.Rows.Count
NumCols = ExpRng.Columns.Count


FileName = "U:\Perso\FichiersTxt\FichierAcreer.txt"
Open FileName For Output As #1
For r = 1 To NumRows
For c = 1 To NumCols
Data = ExpRng.Cells(r, c).Value
If IsNumeric(Data) Then Data = Val(Data)
If IsEmpty(ExpRng.Cells(r, c)) Then Data = ""
If c <> NumCols Then
Write #1, Data
Else
Write #1, Data


End If
Next c
Next r
Close #1
End Sub

Je travaille sur une version d'xls de Microsoft Office Professional Plus 2010

Quelqu'un peut m'aider ? ça serait cool merci...
A voir également:

3 réponses

dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
4 déc. 2013 à 08:24
Bonjour,
il y a plus simple. tu enregistes ta macro dans ton classeur de macro personnel avec un raccourci clavier (par ex W). A chaque ouverture d'excel, tu peux faire un CTRL + W et çà lance ta macro.
Si tu n'as pas de classeur de macro perso, ouvre un fichier excel, mode developpeur puis enregistrer une macro. la tu choisis, son nom, la lettre du raccourci et enregister la macro dans : classeur de macro personnel. Ensuite tu arretes l'enregistrement.
Puis Alt F11 pour faire apparaitre le code et tu copies la macro qui marche dans l'emplacement de la macro perso (VBAproject (personal.xlsb) et module 1 si c'est tout neuf ...
en esperant avoir été clair
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 4/12/2013 à 09:17
Bonjour,

Heuu, une macro personnelle s'ouvrira à chaque lancement d'excel. Je pense qu'il vaut mieux l'éviter puisque tu n'as besoin de ta macro que sur ce fichier.

Je suppose que dans VBA tu n'as pas inséré de module UserForm, ou bien que tu ne l'as pas nommé UserForm1

Mais pourquoi passer par un formulaire ?
Un simple bouton créé sur la feuille et relié à ta macro n'est pas suffisant ?

eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu (en haut vers votre titre) lorsque c'est le cas. Merci
0
dlt-pan Messages postés 481 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 décembre 2014 67
5 déc. 2013 à 07:35
Et oui, elle sont disponible a chaque ouverture d'excel. J'en ai perso une dizaine et excel va très bien. L'avantage c'est justement qu'elle ne sont pas liées a un fichier excel, et si buldozzer54 a 36 fichiers a mettre en .TXT, il ouvre son fichier un CTRL+W et hop c'est fini....
0