XL 2010 Affichage Userform

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

  • Gestion de Bons.xlsm
    32.2 KB · Affichages: 14
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)...

fanfan38

XLDnaute Barbatruc
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

  • Gestion de Bons.xlsm
    32.2 KB · Affichages: 2
Dernière édition:

tontonjoey

XLDnaute Nouveau
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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

Pièces jointes

  • Gestion de Bons.xlsm
    28.1 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
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 ;)
 

tontonjoey

XLDnaute Nouveau
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

  • Gestion de Bons V2.xlsm
    33 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

tontonjoey

XLDnaute Nouveau
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!
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86