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

UserForm après condition If

  • Initiateur de la discussion Initiateur de la discussion terpick
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

terpick

XLDnaute Occasionnel
Bonsoir, le Forum!

Pour ce soir j'ai une question, que je doute d'existence de la résolution.

Est-il possible d'imposer une condition de tel genre:

If UserForm1, page1 Then
Formule
Else

En effet, j'ai un UF avec deux pages, et selon le choix de ces pages il y a une exécution.

Merci à toutes et à tous
 
Re : UserForm après condition If

Bonsoir, James007!
Merci pour votre solution!
Malheureusement, la macro se bloque.
Il faut pas préciser le nom du UserForm?

voilà la macro

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Range("J20:J2000,H38:H2000"), Target) Is Nothing Then
If Me.MultiPage1.Value = 0 Then

Range(Target.Offset(, -8).Address & ":" & Target.Offset(, 1).Address).Interior.ColorIndex = IIf(Target = Sheets("paramétres").[D7], 6, xlNone)
Else
Range(Target.Offset(, -6).Address & ":" & Target.Offset(, 1).Address).Interior.ColorIndex = IIf(Target = Sheets("paramétres").[D7], 6, xlNone)
End If
End If
End Sub

A mon avis, la macro ne reconnait pas le UF

Merci beaucoup, James007
 
Re : UserForm après condition If

Bonsoir, James007

Il manque qqchose... Je le vois, je n'arrive pas à finir ce truc 🙂

On commence le travail avec le bouton "Ajouter une phase supplémentaire". Après on voit apparaitre UserForm1 avec deux pages.

En effet, la formule dépend du choix, fait ici - si travail seul , alors

Range(Target.Offset(, -6).Address & ":" & Target.Offset(, 1).Address).Interior.ColorIndex = IIf(Target = Sheets("paramètres").[H13], 6, xlNone)

si avec cocontractant:

Range(Target.Offset(, -8).Address & ":" & Target.Offset(, 1).Address).Interior.ColorIndex = IIf(Target = Sheets("paramètres").[H13], 6, xlNone)

Dans l'avant-dernière colonne des tableaux - liste déroulante.

La position "avec cocontractant" fonctionne, pour le "seul" - non

Pour un spécialiste' c'est peut-etre rien, mais moi, suis perdu un peut.

Cijoint.fr - Service gratuit de dépôt de fichiers

Merci encore pour le coup de main

A+
 
Dernière édition:
Re : UserForm après condition If

Bonjour, James007
Bonjour, Banzai64
Bonjour, le Forum !

Banzai64,

Bien oui, ça marche comme il faut malgré l'incompréhension de ma part 🙂

Vous avez supprimé même mes formules... une mystère pour moi.
Si vous-avez deux trois minutes pour m'expliquer la Macro, je serai très reconnaissant.

Merci à vous tous !

A +
 
Dernière édition:
Re : UserForm après condition If

Bonjour,

Ravi que Banzai64 ait pû trouver la solution à ton problème ...

Petite Remarque :
Attention à bien nettoyer ton code, car les macros évènementielles ne peuvent être localisées que dans les modules respectifs des feuilles concernées ...

A +
🙂
 
Re : UserForm après condition If

Hi, James!
Que Vous voulais dire sous "Nettoyer le code"?
Pour l'instant, je ne suis pas apte de distinguer les macros évènementielles etc... pour moi ce sont des Macros. Je suppose seulement, que ce sont des macros qu'on applique pour des feuilles de classeurs... 🙂 ?

Merci encore
 
Re : UserForm après condition If

Bonjour

J'ai juste simplifié la macro

La couleur (ou l' absence) commence toujours en colonne "B" et finit toujours une colonne après la cellule active

Et dans le code de l'Userform juste des essais pour essayer ton code

A ta place j'aurais sélectionné un OptionButton lors de l'intialisation de l'Userform, ce qui aurait supprimé un test lors de l'appuie sur "Valider"

Une macro événementielle, comme son nom l'indique, est déclenchée lors d'un évènement (modification, sélection d'une cellule, activation d'une page etc ...) elles sont toujours dans l'objet (Feuille (évènement Worksheet) ou classeur (évènement WorkBook)) qui doit intercepter l'évènement

Pour plus de renseignement parcours ce forum entre autres, et regardes les codes

Bonne journée
 
Re : UserForm après condition If

Bonjour, Banzai64!

Merci pour vos explications.

Mais, bon, j'ai crié la victoire trop tôt.

En faite, je ne peux plus supprimer les tableaux, ça bogue dans VBA et affiche le message d'erreur.
De plus, après le transfère de la macro dans mon dossier, dans le petit tableau la macro ne marche pas non plus.

Pour tant, ce matin elle fonctionnait bien.

J'ai du faire une bêtise et depuis ce matin je ne peux rien y faire ...

Ayayai 🙂
 
Re : UserForm après condition If

Bonjour

Quel message d'erreur ?
Sur quelle ligne ?

Je viens d'essayer avec le fichier, effacement d'un tableau ou suppression des lignes contenant le tableau et pas de soucis

A te lire
 
Re : UserForm après condition If

En effet, j'insère la Macro - tout va bien pour la première fois.
Mais après ça bogue et quand j'ouvre le VBA la Macro est totalement changée:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("J20:J" & Range("J65536").End(xlUp).Row), Target) Is Nothing Then
Range(Target.Offset(, -8).Address & ":" & Target.Offset(, 1).Address).Interior.ColorIndex = _
IIf(Target = "à régler", 6, xlNone)
End If
End Sub

Pour moi c'est très bizzare
 
Re : UserForm après condition If

Bonjour

Et pour moi encore plus

Ce n'est pas la macro que je t'ai faite
Alors soit tu as copié la macro au mauvais endroit (pas dans la bonne feuille) soit tu ne fais pas les essais avec le bon fichier

A suivre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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