XL 2010 Affichage Userform

  • Initiateur de la discussion Initiateur de la discussion tontonjoey
  • 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 !

tontonjoey

XLDnaute Nouveau
Bonjour,
Je souhaite afficher un Userform lorsque je clique sur une des cases de la colonne 3 (la 1ère est masquée).
Seulement avec le nom de l'userform .Show il me met une erreur.
Est-ce quelqu'un a une idée?
 

Pièces jointes

Solution
Re,

Il faut déclarer la variable onglet en tête de module du userform ainsi cette variable (privée au module) sera valide de n'importe quel endroit de votre module de userform

Private onglet As Worksheet


Private Sub UserForm_Initialize()

Set onglet = Worksheets("Feuil1")


TextBox_fournisseur.Value = onglet.Cells(Numligne, 2)
TextBox_nbon.Value = onglet.Cells(Numligne, 3)
TextBox_ndevis.Value = onglet.Cells(Numligne, 5)
TextBox_date.Value = Format(onglet.Cells(Numligne, 4), Date)
ComboBox1.Value = onglet.Cells(Numligne, 6)
TextBox_montant.Value = onglet.Cells(Numligne, 8)
TextBox_bonl1.Value = onglet.Cells(Numligne, 9)
TextBox_bonl2.Value = onglet.Cells(Numligne, 10)...
Bonjour
je présume que c'est l'userform Modif que tu ne peux afficher?
VB:
 Dim Numligne As Integer
                 
    Me.TextBox_fournisseur.Value = onglet.Cells(Numligne, 2)
Quelle valeur a Numligne?

2ème erreur: onglet.format(cells... c'est format(onglet.cells...
Ci joint ton fichier
A+ François
 

Pièces jointes

Dernière édition:
Bonjour
je présume que c'est l'userform Modif que tu ne peux afficher?
VB:
 Dim Numligne As Integer
                 
    Me.TextBox_fournisseur.Value = onglet.Cells(Numligne, 2)
Quelle valeur a Numligne?
A+ François

Merci de te pencher sur mon souci.
voici comment je recherche la valeur Numligne:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Numligne As Long
Dim Modif As UserForm
Numligne = Target.Row
If Not Intersect(Target, Columns(3)) Is Nothing And Range("A" & Target.Row).Value <> Empty Then
Modif.Show
End If
End Sub
 
bonjour
de plus
tu semble te melanger les pinceaux (range/onglet/string/date

si l'erreur te met la ligne show en jaune ca veux pas dire que c'est cette ligne qui déconne
mais peut etre une ligne dans le userform
en l'occurence celle ci
TextBox_date.Value = onglet.Format(Cells(numligne, 4), "DD/MM/YYYY")
il n'y a pas quelque chose qui te gêne là 😉

et pour éviter des variables inter module
je gère tout dans l userform
donc pour commencer dans le change de la feuille
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     If Not Intersect(Target, Columns(3)) Is Nothing And Range("A" & Target.Row).Value <> Empty Then
         Modif.showx (Target.Row)
    End If
End Sub

et ton userform
VB:
Public numligne As Long
Public Function showx(x As Long)
    numligne = x
    Me.Show 0
End Function
Private Sub CommandButton2_Click()
    Unload Modif
End Sub



Private Sub UserForm_Activate()
    Set onglet = Worksheets("Feuil1")
    TextBox_fournisseur.Value = onglet.Cells(numligne, 2)
    TextBox_nbon.Value = onglet.Cells(numligne, 3)
    TextBox_ndevis.Value = onglet.Cells(numligne, 5)
    TextBox_date.Value = Format(onglet.Cells(numligne, 4), "DD/MM/YYYY")'!!!! ALLO!!!!!
    ComboBox1.Value = onglet.Cells(numligne, 6)
    TextBox_montant.Value = onglet.Cells(numligne, 8)
    TextBox_bonl1.Value = onglet.Cells(numligne, 9)
    TextBox_bonl2.Value = onglet.Cells(numligne, 10)
    TextBox_bonl3.Value = onglet.Cells(numligne, 11)
    TextBox_com.Value = onglet.Cells(numligne, 12)
End Sub
et voila 😉
 
Bonjour,

Plusieurs choses

1 - Dim Modif As UserForm est inutile
2 - Déclarer NumLigne en Public dans Module1
3 - onglet.Format(Cells.....) : format n'est pas membre de 'Onglet' c'est Format(onglet.Cells(.....

Cordialement

Maintenant c'est lors de l'enregistrement des modifications qui me remet une erreur alors que la valeur de Numligne est bonne! Une idée?
 

Pièces jointes

Re,

Il faut déclarer la variable onglet en tête de module du userform ainsi cette variable (privée au module) sera valide de n'importe quel endroit de votre module de userform

Private onglet As Worksheet


Private Sub UserForm_Initialize()

Set onglet = Worksheets("Feuil1")


TextBox_fournisseur.Value = onglet.Cells(Numligne, 2)
TextBox_nbon.Value = onglet.Cells(Numligne, 3)
TextBox_ndevis.Value = onglet.Cells(Numligne, 5)
TextBox_date.Value = Format(onglet.Cells(Numligne, 4), Date)
ComboBox1.Value = onglet.Cells(Numligne, 6)
TextBox_montant.Value = onglet.Cells(Numligne, 8)
TextBox_bonl1.Value = onglet.Cells(Numligne, 9)
TextBox_bonl2.Value = onglet.Cells(Numligne, 10)
TextBox_bonl3.Value = onglet.Cells(Numligne, 11)
TextBox_com.Value = onglet.Cells(Numligne, 12)

End Sub

A votre place, j'irai suivre un tutoriel sur les variables et leur portée.

Cordialement
 
Re,

Il faut déclarer la variable onglet en tête de module du userform ainsi cette variable (privée au module) sera valide de n'importe quel endroit de votre module de userform

Private onglet As Worksheet


Private Sub UserForm_Initialize()

Set onglet = Worksheets("Feuil1")


TextBox_fournisseur.Value = onglet.Cells(Numligne, 2)
TextBox_nbon.Value = onglet.Cells(Numligne, 3)
TextBox_ndevis.Value = onglet.Cells(Numligne, 5)
TextBox_date.Value = Format(onglet.Cells(Numligne, 4), Date)
ComboBox1.Value = onglet.Cells(Numligne, 6)
TextBox_montant.Value = onglet.Cells(Numligne, 8)
TextBox_bonl1.Value = onglet.Cells(Numligne, 9)
TextBox_bonl2.Value = onglet.Cells(Numligne, 10)
TextBox_bonl3.Value = onglet.Cells(Numligne, 11)
TextBox_com.Value = onglet.Cells(Numligne, 12)

End Sub

A votre place, j'irai suivre un tutoriel sur les variables et leur portée.

Cordialement
Merci beaucoup et le tuto est une excellente idée!
 
- 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
4
Affichages
367
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Réponses
41
Affichages
889
Réponses
4
Affichages
138
Retour