XL 2010 Formule dans .Label83.Caption

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Me voilà en train de faire un UserForm.
Hé OUI, grâce à vous, j'ai pas mal évolué ...... je ne vous en remercierai jamais assez (encore une fois).

J'ai bien avancé sur mon UF qui presque terminé ;)

Bien sûr, étant loin d'être un "ténor" en VBA, il me faudra bien revenir pour résoudre quelques derniers soucis et comprendre les codes.

Voici ce qui m'amène aujourd'hui :
Je voudrais qu'un message d'alerte s'affiche dans mon UF selon la saisie dans une "ComboBox" (attachée à une colonne de ma feuille).

Voici ce que j'ai fait :
Dans le code de UF
Me.Label83.Caption = Caption

Dans ma macro du lancement de l'UF
Sub AFFICHAGE()
With UserForm1
.Label83.Caption = Caption
.B_Effacer.Visible = False
End With
LECTURE
End Sub

Sub ENREGISTRER()
With UserForm1
.Label83.Caption = Caption
.B_Modifier.Visible = False
End With
End Sub

Dans l'UF Propriétés de Label83
=SI(OU(OU(Cells(1 + CURREG,9)="";Cells(1 + CURREG,9)="libre";Cells(1 + CURREG,9)="- de 15 jrs"));"";"date début")

Résultat attendu :date début

Résultat obtenu quand je suis sur l'Uf (dans VBA) :
=SI(OU(OU(Cells(1 + CURREG,9)="";Cells(1 + CURREG,9)="libre";Cells(1 + CURREG,9)="- de 15 jrs"));"";"date début")

Résultat obtenu quand dans l"UF en exécution : RIEN

Je pense qu'il prend ma formule pour un texte et non comme une formule.

Votre aide, comme d'habitude me précieuse pour comprendre.
Pourriez-vous me dire ce qui ne va pas ou me diriger ?
Je suis en train de faire un fichier test pour mes éventuelles dernières questions mais il n'est pas prêt.
Si le joindre est nécessaire pour la réponse à ma question, je le joindrai dès qu'il sera terminé.

Avec mes remerciements déjà pour avoir lu tout ça que j'espère à peu près clair LOL ...
Je vous souhaite à toutes et à tous un très bon dimanche,
Amicalement,
Lionel,
 
Dernière édition:

Paf

XLDnaute Barbatruc
Bonjour arthour973,

Pour comprendre ce que vous voulez et pouvoir vous aider, il manque des trucs par ci, par là ....

Je voudrais qu'un message d'alerte s'affiche dans mon UF selon la saisie dans une "ComboBox" (attachée à une colonne de ma feuille).
Quelle saisie doit donner quoi ? le message doit s'afficher où?

Dans l'UF Propriétés de Label83
=SI(OU(OU(Cells(1 + CURREG,9)="";Cells(1 + CURREG,9)="libre";Cells(1 + CURREG,9)="- de 15 jrs"));"";"date début")

Dans quelle propriété ? CURREG représente quoi?


Quelques précisions et surtout un classeur anonymisé semblent indispensable (comme souvent !)

A+
 

Paf

XLDnaute Barbatruc
re,

de toute façons, une formule dans le caption d'un label ne représente que du texte qui sera affiché tel quel.

Si c'est lié à la sélection en combobox1, c'est (a priori) dans Private Sub ComboBox1_Change() qu' on trouverait le code de mise à jour du label, avec quelque chose comme ceci:
Code:
If Cells(1 + CURREG,9)="" or Cells(1 + CURREG,9)="libre" or Cells(1 + CURREG,9)="- de 15 jrs" then
    Label83.caption= "date début"
else
  Label83.caption= ""
end if

Suppositions.....

A+
 

Usine à gaz

XLDnaute Barbatruc
Re paf,

Un grand merci ...... ça marche du 1er coup et sans classeur joint LOL
Magique .......

Mais il faudrait que ça fonctionne a l'affichage ... pas quand Private Sub ComboBox1_Change()
Ce qui permettrait de voir tout de suite à la consultation pour les autre lignes déjà enregistrées
C'est possible ?

Je suis en train de préparer le classeur test.
Lionel,
 

Paf

XLDnaute Barbatruc
re,

ben heu ... finalement entre le classeur et vos précisions,
Mais il faudrait que ça fonctionne a l'affichage ... pas quand Private Sub ComboBox1_Change()
Ce qui permettrait de voir tout de suite à la consultation pour les autre lignes déjà enregistrées

je ne suis pas sûr de comprendre ce que vous voulez.

Peut être, dans Sub AFFICHAGE() , remplacer :
Code:
Me.Label83.Caption = Caption
par le code proposé:
Code:
If Cells(1 + CURREG,9)="" or Cells(1 + CURREG,9)="libre" or Cells(1 + CURREG,9)="- de 15 jrs" then
    .Label83.caption= "date début"
else
  .Label83.caption= ""
end if

Bonne suite
 

Usine à gaz

XLDnaute Barbatruc
Re (encore),

Je n'arrive pas à comprendre car la formule ne semble fonctionner que sur la dernière condition.
J'ai voulu simplifier et j'ai retenu cette formule :

If Cells(1 + CURREG, 9) = Cells(1 + CURREG, 9) <> "Libre" Or Cells(1 + CURREG, 9) <> "Finie" Then
.Label83.Caption = "date début"
Else
.Label83.Caption = ""
End If

Que j'ai placée dans les 2 sub :
Sub AFFICHAGE()
Sub ENREGISTRER()

j'avais au préalable supprimé le code dans Private Sub ComboBox1_Change()

Je sèche LOol,
Lionel,
 

Paf

XLDnaute Barbatruc
Re,

la formule ne semble fonctionner que sur la dernière condition.

????
j'ai tenté de traduire votre formule initiale: =SI(OU(OU(Cells(1 + CURREG,9)="";Cells(1 + CURREG,9)="libre";Cells(1 + CURREG,9)="- de 15 jrs"));"";"date début")
en : If Cells(1 + CURREG,9)="" or Cells(1 + CURREG,9)="libre" or Cells(1 + CURREG,9)="- de 15 jrs" Then

qui signifierai (a priori) : si (I1 est vide ouI1="libre" ou I1="- de 15 jrs" ) alors

Mais peut-être n'est ce pas ce que vous voulez tester.

Quant à votre "formule" :
If Cells(1 + CURREG, 9) = Cells(1 + CURREG, 9) <> "Libre" Or Cells(1 + CURREG, 9) <> "Finie" Then

Cells(1 + CURREG, 9) <> "Libre" va 'ramener' False ou True
Cells(1 + CURREG, 9) <> "Finie" va 'ramener' False ou True

Cells(1 + CURREG, 9) <> "Libre" Or Cells(1 + CURREG, 9) <> "Finie" va donc 'ramener' False ou True

et donc avec:
If Cells(1 + CURREG, 9) = Cells(1 + CURREG, 9) <> "Libre" Or Cells(1 + CURREG, 9) <> "Finie"
vous tester si Cells(1 + CURREG, 9) = True (ou False) ce qui n'a aucun sens ( a priori )

Encore une fois définissez clairement ce que vous voulez tester, obtenir ....

A+
 

Discussions similaires

Statistiques des forums

Discussions
315 109
Messages
2 116 316
Membres
112 716
dernier inscrit
jean1234