Liste de choix - VBA

Angelista

XLDnaute Occasionnel
Bonjour à tous ,

Dans le fichier suivant , je souhaiterais sur le formulaire "Etat du Parc" , dès lors que je selectionne une semaine en haut à gauche du formulaire , que les info se remplissent par rapport au fichier excel.

J'ai trouvé des bouts de macro , mais j'arrive pas à les adapter à mon fichier donc je viens soliciter votre aide :D.

D'avance merci.

Angelista
 

Pièces jointes

  • Test.zip
    22.8 KB · Affichages: 50
  • Test.zip
    22.8 KB · Affichages: 48
  • Test.zip
    22.8 KB · Affichages: 50

kllmoon

XLDnaute Occasionnel
Re : Liste de choix - VBA

Salut, pour faire fonctionner ton idée, tu dois procéder en 3 étapes. Premièrement, tu dois utiliser une variable publique pour qu'elle puisse s'appliquer à tout changements.

Tu insère dans un module :
Code:
Public mavariable As Integer

Deuxièmement, pour que ton userform s'affiche à la sélection de ta cellule, utilise le code suivant :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Target, Range("A4:A55")) Is Nothing Then
        Cancel = True
        mavariable = Target.Row
        Userform1.Show 1
    End If
    End Sub

Troisièmement, insère le code approprié dans ton userform pour donner à tes cellules la valeur que tu y insère en te référant à "mavariable" qui t'indique la cellule sélectionnée en A. Je te laisse te débrouiller avec ce bout ;)
 

jp14

XLDnaute Barbatruc
Re : Liste de choix - VBA

Bonjour le fil

Ci dessous les procédures pour l'userform
J'ai modifié l'alimentation de la listbox pour avoir une colonne cachée qui contient le numéro de ligne.

Code:
Dim lig As Long
Dim nomfeuille1 As String
Dim col As String
Dim cellule As Range
Private Sub IndexSemaines_Change()
With Me.IndexSemaines
If .ListIndex = -1 Then Exit Sub
lig = CLng(.List(.ListIndex, (.ColumnCount - 1)))
End With
With Sheets(nomfeuille1)
Me.Renault = .Range("c" & lig)
Me.Peugeot = .Range("b" & lig)
Me.Citroen = .Range("d" & lig)
Me.Total = .Range("c" & lig) + .Range("b" & lig) + .Range("d" & lig)
Me.Iledefrance = .Range("f" & lig)
Me.Province = .Range("G" & lig)
Me.Reste = .Range("h" & lig)
Me.Total2 = .Range("i" & lig)
Me.Dispo = Format(.Range("j" & lig), "0,00%")
End With
End Sub


Private Sub UserForm_Initialize()

'les valeurs des cellules doit être modifées si besoin"

col = "a"
nomfeuille1 = "NiveauSpare"

With IndexSemaines
    .Clear
    .ColumnCount = 2
    .ColumnWidths = "50;0"
    For Each cellule In Sheets(nomfeuille1).Range("a4:a" & Sheets(nomfeuille1).Range("a65536").End(xlUp).Row)
            .AddItem cellule.Value
            .List(.ListCount - 1, .ColumnCount - 1) = cellule.Row
        
    Next cellule
End With

'lig = CLng(ListBox1.List(ListBox1.ListIndex, (ListBox1.ColumnCount - 1)))



End Sub

Private Sub CommandButton1_Click()

    Etat_du_Parc.Hide
    Load Menu
    Menu.Show

End Sub

Private Sub CommandButton2_Click()

    Etat_du_Parc.Hide

End Sub

a tester

JP
 
Dernière édition:

Angelista

XLDnaute Occasionnel
Re : Liste de choix - VBA

Bonsoir ,

Donc j'ai adopté ta méthode JP , bien que je maitrise pas vraiment les "Me." :) , j'aurais une petite question sur ce même tableau , comment je peux faire pour que les chiffres qui apparaissent ne soit pas modifiable , en gros on peux ecrire sur le formulaire au niveau des résultats , peut-on bloquer les cases ?

D'avance merci.

Angeslita.
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
136

Statistiques des forums

Discussions
312 347
Messages
2 087 501
Membres
103 563
dernier inscrit
samyezzehar