Formulaires Utiliser des colonnes nommées avec cells

Bonjour,

Je démarre avec VBA.

Je tente désespérément d'effectuer cette macro, sans résultat :

je souhaite afficher le contenu d'une liste sous forme de formulaire, contenant des textbox et des listes déroulantes.

J'ai donc nommé tous mes contrôles par "donnée1, donnée2,...etc , en tout, j'en ai 26, je souhaite donc réaliser une boucle de 1 à 26 pour afficher tous mes champs.

mais, je souhaite que le numéro de la colonne soit choisie à partir du nom de la colonne et non de son numéro. En effet, je veux pouvoir insérer de nouvelles colonnes dans ma feuille sans impacter mon formulaire.

j'ai donc créé 26 variables qui initialise le numéro de colonne à partir de leur nom, et dans ma boucle je me sers du compteur I comme paramètre du nom de la variable à utiliser........Mais voilà, rien à faire, ça ne fonctionne pas ! j'ai systématiquement le message "erreur d'exécution 13" incompatibilité de type...

Merci par avance pour votre aide.

Pascale

Voici sur 5 colonnes, ce que j'ai écrit :

Private Sub ComboBox1_Change()

Dim Ligne As Long

Dim I As Integer

Dim Colonne1 As Long

Dim Colonne2 As Long

Dim Colonne3 As Long

Dim Colonne4 As Long

Dim Colonne5 As Long

If Me.ComboBox1.ListIndex = -1 Then Exit Sub

Ligne = Me.ComboBox1.ListIndex + 2

Colonne1 = Range("Date_DDT").Column

Colonne2 = Range("Login").Column

Colonne3 = Range("Nom").Column

Colonne4 = Range("Prénom").Column

Colonne5 = Range("Service").Column

For I = 1 To 5

Me.Controls("Donnée" & I) = Cells(Ligne, "Colonne" & I)

Next I

End Sub

Bonjour Pascale31,

Pour nous permettre de t'aider, il est souhaitable que tu joignes ton classeur anonymisé.

A+

Et voici !

Euh ! tu n'aurais pas oublié le formulaire ?

A+

Non, j'ai vérifié, il est bien présent.

Il faut aller dans Visual Basic, il s'appelle Userform2

Merci de m'indiquer comment faire

mais ... je ne vois toujours pas ton Userform.

Mystère

A+

Mille fois désolée,

je viens de comprendre, je pensais avoir copié le userform dans mon fichier tests, mais comme j'avais toujours mon fichier original ouvert, du coup je n'ai pas fait attention que mon userform n'était pas associé au bon fichier excel... bon cette fois-ci, je pense que c'est réglé.. désolée de vous faire perdre du temps

pascale

Me voici rassuré ... point d'étrangeté dans ton fichier

Essaie comme cela

'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Colonne(1 To 5) As Integer
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    Colonne(1) = Range("Date_DDT").Column
    Colonne(2) = Range("Login").Column
    Colonne(3) = Range("Nom").Column
    Colonne(4) = Range("Prénom").Column
    Colonne(5) = Range("Service").Column
    For I = 1 To 5
        Me.Controls("Donnée" & I) = Ws.Cells(Ligne, Colonne(I))
    Next I
End Sub

ça marche enfin Génial ! trop bien ! Bravo !!

ça fait une journée que je suis là-dessus !!

mille mercis, ce site et son forum sont très bien construits, et les personnes qui répondent sont vraiment des pro !, merci à vous

Pascale

Rechercher des sujets similaires à "formulaires utiliser colonnes nommees"