msgbox ou textbox

sigma

XLDnaute Occasionnel
bonjourt à tous,

déjà queleque temps que je cherche dans les archives du forum malheureusement sans succès...
ma problématique est pourtant simple.
j'ai une colonne d'un fichier que je voudrai renseigner en fonction de données connues.

en colonne A, j'ai 3 choix possible: 1, 2 ou 3.
ma colonne B dépend de ma colonne A, si j'ai 1 dans ma colonne A (exA1) => alors celulle à coté colonne B(exB1) = "boubou"
si j'ai 2 dans ma colonne A => alors celulle à coté colonne B = "chichi". si j'ai 3 dans ma colonne A => alors celulle à coté colonne B doit me donner le choix entre "chichi et "boubou".

je vous laisse un fichier joint, à mon avis c'est plus simple...
merci à tous.

A+
 

Pièces jointes

  • test.xlsx
    12.4 KB · Affichages: 49
  • test.xlsx
    12.4 KB · Affichages: 58
  • test.xlsx
    12.4 KB · Affichages: 58

titiborregan5

XLDnaute Accro
Re : msgbox ou textbox

Bonjour SIgma, le forum,

en pj un exemple qui comprend le code ci-dessous:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
c = Target.Column
l = Target.Row

numb = Cells(l, 1)

If c = 1 Then
Select Case numb
Case 1
Cells(l, 2) = "boubou"
Case 2
Cells(l, 2) = "chichi"
Case 3
r = InputBox("Choisir boubou ou chichi et valider")
Cells(l, 2) = r

End Select

End If

End Sub

En espérant que ça réponde à tes attentes!
 

sigma

XLDnaute Occasionnel
Re : msgbox ou textbox

merci titiborregan5,

j'avoue ne pas tout comprendre du code... si mes 1,2 et3 sont sur une autre colonne que la A comment faire ? dans un second temps ne peut ont pas choisir directement entre boubou et chihi par une liste par exemple ?

merci
A+
 

Theze

XLDnaute Occasionnel
Re : msgbox ou textbox

Bonjour,

A tester. A mettre dans le module de la feuille :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim Valeur As Integer
    
    If Target.Count > 1 Then Exit Sub
    
    'seulement en colonne A
    If Target.Column <> 1 Then Exit Sub
    
    Select Case Target.Value
    
        Case 1
            Target.Offset(, 1) = "boubou"
            
        Case 2
            Target.Offset(, 1) = "chichi"
            
        Case 3
            
            'ici la réponse est fonction du choix entre les boutons "Oui" et "Non"
            Valeur = MsgBox("Choisir entre 'chichi' et 'boubou'" _
                            & vbCrLf & _
                            "'chichi' = bouton Oui" _
                            & vbCrLf & _
                            "'boubou' = bouton Non", vbYesNoCancel)
            
            If Valeur = 6 Then Target.Offset(, 1) = "chichi"
            If Valeur = 7 Then Target.Offset(, 1) = "boubou"
        
    End Select

End Sub

Hervé.
 

sigma

XLDnaute Occasionnel
Re : msgbox ou textbox

Bonjour à tous,
J'avance doucement dans mes travaux, j'ai désormais une macro qui renseigne la colonne B en fonction de la colonne A sur certains items seulement. Si la donnée en colonne A est égale à "assuré" l'userform s'ouvre. Je voudrai désormais mettre dans la colonne B la valeur de la text box cochée et que l'userform se ferme ensuite.
Dans un second temps, j'imagine qu'il y a certainement un moyen de simplifier le code de la feuille test.
je pose une pj comme support.

merci à tous,
A+
 

Pièces jointes

  • test nath.xls
    163 KB · Affichages: 38

sigma

XLDnaute Occasionnel
Re : msgbox ou textbox

re,
j'ai de nouveau amélioré la macro (le mot est fort), en fait j'ai simplement réussi à fermer mon userform à partir des CheckBox et à alimenter une cellule dans la colonne B en fonction de celle existante dans la colonne A.
toutefois je ne vois pas comment réussir à ce que ma cellule de destination soit la cellule d'a coté de la colonne A.
ex si j'ai sélectionner ma cellule A4 mettre en destination en B4.

Private Sub CheckBox1_Click()

merci de votre aide
A+
Range("B16").Value = "Réclamation standard"
userform1.Hide
 

Dranreb

XLDnaute Barbatruc
Re : msgbox ou textbox

Bonjour.
Il y a deux solutions pour faire communiquer un Userform avec quelque chose de temporairement défini ailleurs:
Soit passer par une déclaration Public dans un module ordinaire de variables qui seront ainsi connues des 2 cotés,
Soit écrire une procédure Public dans l'Userform (Sub ou Function) munie des paramètres devant être communiqués.
Attention, dans ce dernier cas son utilisation depuis ailleurs doit être précédée du nom du userform suivi d'un point.
Elle peut se charger en même temps de l'affichage: faire Me.Show
 

titiborregan5

XLDnaute Accro
Re : msgbox ou textbox

Bonjour dranreb,
merci pour tes lumières mais impossibles de mettre en pratique...
Sur excel 2003 mon boutton_click issu de mon userform n'est pas dans la même feuille de code que ma macro événementielle présente dans la feuille1... Du coup même en déclarant la variable, je n'y arrive pas...
Peux-tu nous/m' expliquer plus précisément?

Merci d'avance!

Tibo
 

Dranreb

XLDnaute Barbatruc
Re : msgbox ou textbox

Pour employer la 1ère solution, qui n'a pas ma préférence, il ne faut déclarer la variable Public (très important: pas Dim, mais Public !) ni dans l'Userform ni dans le module de la feuille, mais impérativement dans un module ordinaire. Il n'y a que là que ça devient une alors une variable globale connue sans préfixe dans tout le projet VBA, et non une propriété du module attaché à un quelconque objet, dont le nom doit le qualifier devant un point pour qu'on puisse l'utiliser ailleurs. Ce qui est du reste une autre solution possible.
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : msgbox ou textbox

salut

problème de Compétence_partagée. Tu ne l'as pas dans ta liste donc j'ai ajouté une colonne.
Si... tu l'inclus dans la liste, tu peux remplacer l'InputBox par un Userform construit comme le précédent.
 

Pièces jointes

  • Select Case et UsF.xls
    160 KB · Affichages: 42

Dranreb

XLDnaute Barbatruc
Re : msgbox ou textbox

Dans certains cas, évidemment, on peut se contentez de passer par les objets spéciaux d'Excel ayant une valeur courante tels que ActiveCell, Selection, ActiveSheet, ActiveWorkBook mais c'est à mon avis plus aléatoire. Que se passerait-il si la cellule A1 était modifiée par une macro alors que ce n'est pas la cellule active ?
 

Si...

XLDnaute Barbatruc
Re : msgbox ou textbox

re

... Que se passerait-il si la cellule A1 était modifiée par une macro alors que ce n'est pas la cellule active ?

Si... tu parles de mon exemple, on peut s'en prémunir en complétant une ligne :
Code:
 If R.Column > 1 Or R.Row = 1 Then Exit Sub

Maintenant on peut aussi aller dans toutes les directions en fonction du projet complet !
D'aucun essaie de donner des réponses universelles avec tous les gardes-fous possibles. Ce n'est pas mon cas, je me contente de ce que l'on me donne.
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 329
Membres
103 517
dernier inscrit
hbenaoun63