Récupération choix liste déroulante ActiveX et Macro

Bonjour à tous, ceci est mon premier message sur le forum, je m'appel Lionel et j'attaque le monde du VBA depuis quelques jours :)

je travail sur un petit projet avec un fichier excel et je n'arrive pas à trouver la solution avec ma macro et la liste déroulante activeX. l'objectif est que lorsque l'on clic sur le premier bouton "Feuil1, bouton tireuse L1" , le choix effectué dans la liste déroulante s'enregistre dans la feuille "enregistrements" , en colonne D, puis à chaque clic, s'enregistre dans la cellule à la suite.

voici ma macro complète :

Sub Macro1()

' enregistrement de la date

Dim dl As Long
dl = Sheets("Enregistrements").Range("B" & Rows.Count).End(xlUp).Row + 1
Sheets("Enregistrements").Range("B" & dl) = Format(Now, "dd/mm/yyyy hh:mm:ss")

' enregistrement de la machine

Dim TireuseL1 As Long
TireuseL1 = Sheets("Enregistrements").Range("C" & Rows.Count).End(xlUp).Row + 1
Sheets("Enregistrements").Range("C" & dl) = "Tireuse L1"
'
' enregistrement de la valeur choisi dans la liste déroulante

Dim selectedValue As String
selectedValue = listtech ' si j'indique le nom de ma liste listtech.Value , erreur d'execution 424 :(

Dim Recupliste As Long
Recupliste = Sheets("Enregistrements").Range("C" & Rows.Count).End(xlUp).Row + 1
Sheets("Enregistrements").Range("D" & dl) = selectedValue

End Sub

###########################

je suis novice, j'ai beaucoup cherché, j'ai même essayé avec chatGPT :-) qui m'indique :

Dim selectedValue As String
selectedValue = ComboBox1.Value ' Remplacez "ComboBox1" par le nom de votre liste déroulante

Merci beaucoup si une personne peut me secourir :-)

13test1.xlsm (29.09 Ko)

Edit Modo : mis code entre balises

Bonjour,

Il vous faut travailler avec un tableau structuré.

Sub AjoutTireuse()
    MajTableau "Tireuse L1"
End Sub

Sub AjoutRinceuse()
    MajTableau "Rinceuse L1"
End Sub

Sub AjoutCapsuleuse()
    MajTableau "Capsuleuse L1"
End Sub

Sub MajTableau(ByVal Machine As String)

Dim MaTable As ListObject
Dim LigneTable As ListRow

  With Sheets("Enregistrements")

       Set MaTable = .ListObjects("t_Machines")
       With MaTable
            Set LigneTable = .ListRows.Add
            With LigneTable
                 .Range(1, 1) = Format(Now, "dd/mm/yyyy hh:mm:ss")
                 .Range(1, 2) = Machine
                 .Range(1, 3) = Sheets("Feuil1").OLEObjects(1).Object
            End With
            Set LigneTable = Nothing
       End With
       Set MaTable = Nothing

  End With

End Sub

merci beaucoup :) ça marche très bien. Je ne connaissais pas les tableaux structurés. Le faite que la mention :

Dim selectedValue As String
selectedValue = listtech ' si j'indique le nom de ma liste listtech.Value , erreur d'execution 424 :(

ne fonctionne pas, est dû au fait que je n'utilise pas un tableau structuré ? ou que pour "une syntaxe plus propre" , il faut un tableau structuré ?

bonjour à tous,

bonjour lcharron,

ne fonctionne pas, est dû au fait que je n'utilise pas un tableau structuré ? ou que pour "une syntaxe plus propre" , il faut un tableau structuré

SI cela ne fonctionne pas c'est parce qu'il faut préciser le nom de la feuille sur laquelle se trouve ton activeX

selectedvalue =sheets("feuil1").listtech.value

Merci h2so4 !

ça marche ! et en plus cela répond à ma question qui me perturbe :) pkoi ça ne marche pas !!!! :)))))

merci également Eric, je ne connaissais pas et du coup je vais regardé aussi cette méthode. Bonne journée à vous

Rechercher des sujets similaires à "recuperation choix liste deroulante activex macro"