Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Transfert d'une variable d'un userform à une macro

IxeX

XLDnaute Nouveau
Bien le bonjour la communauté,

Je me permets de vous soumettre un petit problème. Je souhaite alimenter un tableau ligne par ligne de deux façons :

En saisie d'une part ou via un userform d'autre part. Je joins à mon post un fichier d'exemple.

En mode saisie, l'insertion d'une donnée dans la colonne valeur 1 alimente automatiquement la colonne date à la date du jour.

Voici la macro (1) correspondante en Feuil1 :

VB:
Sub Worksheet_Change(ByVal Target As Range)

Dim ligne_active As Integer
ligne_active = ActiveCell.Row

    If Target.Column = 1 And Worksheets("Feuil1").Range("A" & ligne_active).Value <> "" Then
    
        MsgBox "J'insère automatiquement la date du jour dans la colonne délai !"

        'Colonne délai
        Target.Offset(0, 3) = Format(DateTime.Now, "yyyy-MM-dd hh:mm:ss")
        
    End If

End Sub

En mode userform cette fois, je souhaite également alimenter ma colonne date mais en ajoutant à la date du jour la valeur du champ délai de mon userform.

Dans mon exemple (ci-joint), c'est tout à fait ce qui se passe. Néanmoins (et c'est là tout le sujet de mon problème), la condition de ma macro (1) en Feuil1 est préalablement "lancée" avant que la valeur délai de mon champ userform soit ajouter à la date du jour. Mon programme lance donc 2 opérations distinctes, la dernière écrasant la première. Dans cette ordre donc (à la date du jour de ma publication) : 20/07/2021 puis 22/07/2021......

Dans le cadre d'un développement plus complexe, je souhaiterais, lorsque j'ajoute mes données en mode userform, annuler la condition d'insertion de la date du jour effectuée par ma macro (1) (si valeur 1 est modifiée) afin d'insérer automatiquement la date du jour + délai..............

Pour cela, il faudrait sans doute que je transfère une variable à l'initialisation de mon userform de sorte que je puisse l'appeler dans ma macro (1) en Feuil1 et l'insérer dans ma condition afin de l'annuler :

SI var_userform = 1 ALORS "je n'insère pas de données"

Voilà, je ne suis pas bien satisfait par la clarté de ma publication... mais j'espère que vous comprendrez malgré tout ma problématique. N'hésitez à revenir vers moi, je préciserai si besoin.

Merci d'avance !
 

Pièces jointes

  • exemple_03.xlsm
    25.9 KB · Affichages: 8

youky(BJ)

XLDnaute Barbatruc
Bonjour
Je n'ai pas ouvert le fichier mais je verrais tout à fait ceci
'on neutralise les événements
application.EnableEvents=False
'la macro _Change n'aura pas lieu
'on remets vite à true sinon plus d'évenements
application.EnableEvents=true
Bruno
 

Dudu2

XLDnaute Barbatruc
Bonjour,

Je n'ai pas trop creusé pour savoir si c'est ça que tu cherches mais j'avais fait pour mon propre usage un petit module d'interface basé sur le Dictionary pour échanger des données avec un UserForm. On peut y mettre aussi bien des variables que des objets qu’étonnamment le Dictionary accepte en y mettant les formes.
 

Pièces jointes

  • VBA UserFormInterface.xlsm
    23.3 KB · Affichages: 10

Discussions similaires

Réponses
6
Affichages
299
Réponses
6
Affichages
394
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…