Transformer nom en Fonction VBA??
Résolu/Fermé
A voir également:
- Transformer nom en Fonction VBA??
- Fonction si et - Guide
- Transformer majuscule en minuscule word - Guide
- Transformer image en icone - Guide
- Nom de l'adresse ✓ - Forum Loisirs / Divertissements
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
5 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
295
21 nov. 2008 à 11:49
21 nov. 2008 à 11:49
Je voudrais juste savoir comment transformer un "nom" crée de la manière suivante: "Insertion - Nom- Définir" en fonction pour un code VBA.
tu te places au début de ta liste.
selection.currentregion.rows.select ' selectionne la zone en cours
selection.name="MaZone" ' je nomme la plage "MaZone"
et je la selectionne avec range(MaZone).select
aussi simple que cela.
n'hésite pas à me dire si cela te convient ou non!
tu te places au début de ta liste.
selection.currentregion.rows.select ' selectionne la zone en cours
selection.name="MaZone" ' je nomme la plage "MaZone"
et je la selectionne avec range(MaZone).select
aussi simple que cela.
n'hésite pas à me dire si cela te convient ou non!
Oui j'ai oublié de préciser (pardons on ^^) le code entier est celui ci:
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
nbre = Application.CountA(Range("element")) - 1
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
cette partie fonctionne parfaitement. ensuite là où ça se gâte:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
Normalement le code devrait fonctioner ainsi >choix combobox1>envoie liste correspondante dans combobox2
le seul prob c'est que le renvoi fonctionne pas y'a que du vide:(
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
nbre = Application.CountA(Range("element")) - 1
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
cette partie fonctionne parfaitement. ensuite là où ça se gâte:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
nbre = Application.CountA(Range(zone)) - 1
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
Normalement le code devrait fonctioner ainsi >choix combobox1>envoie liste correspondante dans combobox2
le seul prob c'est que le renvoi fonctionne pas y'a que du vide:(
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
295
21 nov. 2008 à 13:28
21 nov. 2008 à 13:28
j'ai modifié ton code mais comme je n'ai pas toute les donées... difficile.
1 ) la fonction CountA ne fonctionne pas chez moi (excel 2003)
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
'nbre = Application.CountA(Range("element")) - 1
' je modifie là
Sheets("feuil6").Select
nbre = Sheets("Feuil6").Cells(65536, 1).End(xlUp).Row - 2 ' " - 2 "si la liste commence à A3 avec le titre en A2
'
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
End Sub
'cette partie fonctionne parfaitement. ensuite là où ça se gâte:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
' je modifie là
nbre = Range(zone).Count
'nbre = Application.CountA(Range(zone)) - 1
' je finis
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
' remarque cptr est une varible byte un integer serait mieux pour faire référence à une liste.
' je regarde encore mais je pense qu'il s'agit d'un débordement de plage.
' en fait ton combobox1 et 2 fonctionnent bien mais je pense qu'il pointe au delà de ta liste
'
je te conseille la chose suivante force la variables col à 5 et regarde si le résultat convient
tu devrais lire toute la colone 5
A+
1 ) la fonction CountA ne fonctionne pas chez moi (excel 2003)
Private Sub UserForm_Initialize()
Dim nbre As Byte, cptr As Byte
Me.ComboBox2.Enabled = False
'nbre = Application.CountA(Range("element")) - 1
' je modifie là
Sheets("feuil6").Select
nbre = Sheets("Feuil6").Cells(65536, 1).End(xlUp).Row - 2 ' " - 2 "si la liste commence à A3 avec le titre en A2
'
For cptr = 0 To nbre
Me.ComboBox1.AddItem Sheets("feuil6").Cells(7, cptr + 14)
Next
End Sub
'cette partie fonctionne parfaitement. ensuite là où ça se gâte:
Private Sub ComboBox1_Change()
Dim nbre As Byte, cptr As Byte, choix As Byte, col As Byte
Dim zone As String
Me.ComboBox1.Enabled = False
Me.ComboBox2.Enabled = True
choix = Me.ComboBox1.ListIndex + 1
zone = Choose(choix, "CVC", "plomberie", "courantft", "courantf", "SI", "levage", "PBA", "SO", "facade", "toiture", "VRD", "H", "D")
' je modifie là
nbre = Range(zone).Count
'nbre = Application.CountA(Range(zone)) - 1
' je finis
col = Choose(choix, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
For cptr = 0 To nbre
Me.ComboBox2.AddItem Cells(cptr + 13, col)
Next
End Sub
' remarque cptr est une varible byte un integer serait mieux pour faire référence à une liste.
' je regarde encore mais je pense qu'il s'agit d'un débordement de plage.
' en fait ton combobox1 et 2 fonctionnent bien mais je pense qu'il pointe au delà de ta liste
'
je te conseille la chose suivante force la variables col à 5 et regarde si le résultat convient
tu devrais lire toute la colone 5
A+
Toujour aucune amélioration, je suis dsl mais j'aimerais bien vous envoyer mon fichier mais j'ai des protections admin et cijoint ne fonctionne pas et nous disposons que de ce poste là.
Si y'a un autre moyen je suis preneur.
Si y'a un autre moyen je suis preneur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon nous sommes dsl pour avoir posté deux sujets similaires mais c'est de la faute à Maxence enfin bref, le problème est résolu voir sujet : "Liste choix pas pris en compte par macro".
Les remerciements sont aussi inscrient sur le sujet mais on tiens à les réitérer donc voilà:
nous remercions Bidouilleur_R, Lermitte222 pour leurs aide et michel_m pour son aide précieuse et oui il est à l'origine du code ^^.
Merci à vous qui viennent porter secour à des novices comme nous.
Bonne journée
Les remerciements sont aussi inscrient sur le sujet mais on tiens à les réitérer donc voilà:
nous remercions Bidouilleur_R, Lermitte222 pour leurs aide et michel_m pour son aide précieuse et oui il est à l'origine du code ^^.
Merci à vous qui viennent porter secour à des novices comme nous.
Bonne journée
21 nov. 2008 à 11:55
Nous sommes novices (Maxence et moi) donc on comprends approximativement les ligne ci dessus mais ou les intégrés dans le code????