Récupérer résultat de InputBox dans une Macro

Bonjour,

dans mon classeur Recup variable.xlsm, lorsque je clique sur Créer les fichiers Marque qui créé autant de classeur que de marque, je dois renseigner le nombres de colonnes (nbcol). comment faire pour que le nbcol renseigné soit écrit dans le module import_Data du classeur créé ou dans le module import_Data à exporter.

Cela me permet de ne demander qu'une seule fois ce renseignement et pas à chaque classeur créés.

Cordialement

33recup-variable.xlsm (200.35 Ko)

bonjour,

2 solutions

soit tu déclares nbcol au niveau du module en dehors, de tes subs., tu peux alors utilise variable qui sera commune à toutes tes procédures.

dim nbcol as integer

sub question

nsub

puis tu utilises nbcol où tu veux dans export_MAR

soit tu donnes nbcol comme paramètre à ta procédure Export_MAR

expert_mar(nbcol)

sub export_mar(nbcol)' cela peut être le même nom mais pas nécessairement

puis tu utilises nbcol où tu veux dans export_MAR

Je ne conserve pas le module Export_MAR dans mes nouveaux classeurs

En fait je veux utiliser le résultat de question dans Export_MAR par exemple 7 et le coller en dur dans le module Import_DATA du même classeur.

Peux t'il y avoir une interaction entre les 2 modules ?

Ou alors je peux utiliser le résultat lorsque j'exporte le module Import_DATA dans le nouveau classeur

bonjour,

tu veux remplacer nbcol dans le module import_data par sa valeur ?

pour cela dans ton module export_MAR

ajoute ceci

     'fichier temporaire pour l'exportation/importation
            tmpModule = chem & "Import_DATA.bas"

            'exportation depuis le classeur qui contient ce code
            ThisWorkbook.VBProject. _
                    VBComponents("Import_DATA").Export tmpModule
               'ouvrir le fichier avec le code vba
                    Open tmpModule For Input As 1
                    nc = LOF(1)
                    tempmodule = Input(nc, #1)

           'remplacer le code vba
           tempmodule = Replace(tempmodule, "'#nbcol=", "nbcol=" & nbcol)
          Close 1
           ' écrire le code vba modifié 
          Open tmpModule For Output As 1
          Print #1, tempmodule
          Close 1

mais tu devras adapter ton code Import_data

rajoutes-y un commentaire juste après l'instruction

Dim I As Integer, K As Integer, S As Integer
'la ligne suivante sera adaptée par la procédure export_MAR
' en instruction executable nbcol=constante qui sera fournie par export_MAR
'#nbcol=

je ne sais pas si ceci réponds à ta question !

ps ce n'est pas une très bonne pratique que de bidouiller du code par programme, car cela devient très difficile à maintenir par la suite, mais il y a moyen de le faire.

Je n'ai pas réussi

peux tu modifier mon code ?

Cordialement

Bonjour,

effectivement il y avait une erreur dans mes instructions (désolé, ma vision semble de plus en plus défaillante)

j'ai corrigé mon message précédent et adapté ton fichier

83recup-variable.xlsm (190.49 Ko)

Nickel.

Je te remercie énormément.

Bonne soirée

Rechercher des sujets similaires à "recuperer resultat inputbox macro"