Conditionner Userform VBA Excel
Val2202
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je rencontre une petite difficulté sur VBA,
j'aimerai conditionner la valeur de plusieurs Label et Combox d'un Userform en fonction de la valeur d'une cellule.
Plus clairement j'utilise un même userform pour saisir plusieurs types de données;
Selon la valeur d'une cellule définie, en cliquant sur un bouton d'un premier userform, le userform en question se lance et les propriétés Caption des label et RowSource des combox sont mises à jour ;
Or j'ai tenté plusieurs choses et aucune ne fonctionne :
- Userform_Initialize ()
If Range("C_INP2").Value = "1" Then
L_CP.Caption = "Modification ou ajout d'une donnée Inspection NP"
L_C1.Caption = "Raison de l'inspection NP"
L_C3.Caption = "Nombre"
L_C2.Visible = False
CB_C2.Visible = False
CB_C1.RowSource = "DATA1!C5:C13"
End If
- Userform_Acivate ()
Idem
- Utilisation du même code mais à l'ouverture du userform, dans le private sub du bouton de lancement de ce dernier avec la fonction .Repaint pour updater l'affichage.. mais toujours rien;
J'espère avoir été clair, si oui quelqu'un aurait-il une solution ?
En vous remerciant
Je rencontre une petite difficulté sur VBA,
j'aimerai conditionner la valeur de plusieurs Label et Combox d'un Userform en fonction de la valeur d'une cellule.
Plus clairement j'utilise un même userform pour saisir plusieurs types de données;
Selon la valeur d'une cellule définie, en cliquant sur un bouton d'un premier userform, le userform en question se lance et les propriétés Caption des label et RowSource des combox sont mises à jour ;
Or j'ai tenté plusieurs choses et aucune ne fonctionne :
- Userform_Initialize ()
If Range("C_INP2").Value = "1" Then
L_CP.Caption = "Modification ou ajout d'une donnée Inspection NP"
L_C1.Caption = "Raison de l'inspection NP"
L_C3.Caption = "Nombre"
L_C2.Visible = False
CB_C2.Visible = False
CB_C1.RowSource = "DATA1!C5:C13"
End If
- Userform_Acivate ()
Idem
- Utilisation du même code mais à l'ouverture du userform, dans le private sub du bouton de lancement de ce dernier avec la fonction .Repaint pour updater l'affichage.. mais toujours rien;
J'espère avoir été clair, si oui quelqu'un aurait-il une solution ?
En vous remerciant
Configuration: Windows / Edge 94.0.992.38
A voir également:
- Conditionner Userform VBA Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
Bonjour,
Ce 1 est un chiffre ou un "texte"?
Si chiffre: =1 pas ="1"
If Range("C_INP2").Value = "1" Then
Ce 1 est un chiffre ou un "texte"?
Si chiffre: =1 pas ="1"
Bonjour,
il faudrait un extrait anonymisé de ton fichier pour y voir clair.
cjoint.com et coller ici le lien fourni
eric
il faudrait un extrait anonymisé de ton fichier pour y voir clair.
cjoint.com et coller ici le lien fourni
eric
Malheureusement il s’agit d’un fichier excel pour le boulot et je suis en vacances pour une semaine ; impossible de le joindre ici avant donc….
c’est certain que ce serait plus pratique;
Pour essayer de résumer la manipulation que je cherche à coder :
J’ai un premier Userform1, contenant plusieurs CommandButtons
Tout ces CommandButtons ouvrent un même Userform2, dont les propriétés de ses Listbox et Label changent selon si il a été ouvert depuis tel ou tel Commandbutton du Userform1;
Peut-être est-ce plus clair ?
c’est certain que ce serait plus pratique;
Pour essayer de résumer la manipulation que je cherche à coder :
J’ai un premier Userform1, contenant plusieurs CommandButtons
Tout ces CommandButtons ouvrent un même Userform2, dont les propriétés de ses Listbox et Label changent selon si il a été ouvert depuis tel ou tel Commandbutton du Userform1;
Peut-être est-ce plus clair ?
Re,
Mettez un point d'arret sur la ligne du if et lancez votre UF.
Des que l'execution s'arrete, passez le curseur souris sur Range("C_INP2").Value pour voir ca valeur.
Si pas possible de voir la valeur mettez cette ligne avant le IF
des l'arret sur le if, ouvrez la fenetre d'execution pour voir le resultat
Mettez un point d'arret sur la ligne du if et lancez votre UF.
Des que l'execution s'arrete, passez le curseur souris sur Range("C_INP2").Value pour voir ca valeur.
Si pas possible de voir la valeur mettez cette ligne avant le IF
Debug.Print Range("C_INP2").Value
des l'arret sur le if, ouvrez la fenetre d'execution pour voir le resultat
c’est un chiffre.