donner la meme liste de valeur à pleinS de combobox

  • Initiateur de la discussion SaYaN
  • Date de début
S

SaYaN

Guest
Bonjour à tous, le forum,

Mon cerveau bug encore ojourd'hui, j'ai donc besoin de vos conseils aguerris...
Sur ma feuille excel se trouvent environ 60 combobox.30 ont une liste de valeurs et les 30 suivantes en ont une autre.Je sais comment donner une liste de valeurs par la méthode .additem seulement je voudrais pouvoir passer par une boucle histoire d'alléger mon code et surtout ne pas avoir à tout taper.
Mes combo portent toutes le meme nom (2 noms différents...2 listes différentes) et se différencient par un numéro qui est le numéro de ligne.
Quelqu'un a t'il une idée ?

J'ai une deuxieme question, ca m'évitera de remettr un post par la suite, pouvez vous me dire si le code ci-dessous est bon pour donner l'impression lorsque l'on imprime un fichier que les combobox ont disparu ?

With ComboBox1
.ShowDropButtonWhen = fmShowDropButtonWhenNever
.BorderStyle = fmBorderStyleSingle
.BorderColor = &H8000000F
End With

En vous remerciant, @ tt à l'heure.

SaYaN
 
@

@Christophe@

Guest
Ton mail ne marche pas, voici le fichier, mais j'ai du supprimer l'aide en image, si tu veux plus d'info, donne moi une adresse mail valable

Bonne soirée

@Christophe@
 

Pièces jointes

  • RemplirCombo.zip
    9.6 KB · Affichages: 37
  • RemplirCombo.zip
    9.6 KB · Affichages: 31
  • RemplirCombo.zip
    9.6 KB · Affichages: 29
S

SaYaN

Guest
Bjr @Christophe@, le forum,

J'ai regardé ton fichier zip c très cool ta méthode et c exactement ce que je voudrais utiliser, seulement je travail directement sur la feuille excel (j'avais pa précisé !), et la propriété Tag n'existe pas enfin j'ai pas trouvé.

voilà la méthode par laquelle je passe, bon c sur j'ai pas la notion de boucle encore mais avec ton exemple du dessus ca va le faire !Merci Tof, je repasserai pr donner la version "en boucle" ...

Chaude Journée à tous.


Dim MyArray(6, 2)

MyArray(0, 0) = "Zéro"
MyArray(1, 0) = "Un"
MyArray(2, 0) = "Deux"
MyArray(3, 0) = "Trois"
MyArray(4, 0) = "Quatre"
MyArray(5, 0) = "Cinq"

MyArray(0, 1) = "0"
MyArray(1, 1) = "1"
MyArray(2, 1) = "2"
MyArray(3, 1) = "3"
MyArray(4, 1) = "4"
MyArray(5, 1) = "5"

ComboBox1.List() = MyArray
ComboBox1.ListRows = 6
ComboBox1.ColumnCount = 2


SaYaN
 
S

SaYaN

Guest
re bonjour,

J'arrive vraiement pas à me dépatouiller de mon code, en fait je suis sur que je touche au but, mais encore une fois je dois écrir des choses qui n'ont de sens que pour moi !
Dans le code qui suit tout fonctionne bien excepté le CTRL.List(), si javais été sur un USF j'aurais pu kiker le problème en un rien de temps grace à la méthode de @christophe@ avec le .TAG mais non je boss sur ma feuille excel.

Comment faire pour récupérer ma variable LaCombo ou meme Ctrl.name et lui faire comprendre que c un objet combobox et rien d'autre !!! On peut pas déclarer une variable genre "dim combo as ComboboxObject" ! lol

Bon j'arrete de m' NRV et je vous balance le code:


Dim LaCombo As String
Dim CTRL As OLEObject
Dim Ligne As Integer


For Each CTRL In Worksheets(1).OLEObjects
If CTRL.ProgId = "Forms.ComboBox.1" Then
For Ligne = 1 To 720
LaCombo = CTRL.Name
If LaCombo = "ComboBoxAvis" & Ligne Then
CTRL.List() = MyArray
ElseIf LaCombo = "ComboBoxSecteur" & Ligne Then
CTRL.List() = MyTablo
End If
Next Ligne
End If
Next CTRL

Pliz Help Mi !!! lol
SaYaN
 
@

@Christophe@

Guest
Bonjour SaYaN

Voici un code qui alimente les combo d'une feuille

Sur ta feuille 8 combo

Les combo de 1 à 4 sont remplis avec une liste
et les combo de 4 à 8 avec une autre liste

Sub ComboFill()
Dim Combo As OLEObject
Dim ComboNr As Byte

For ComboNr = 1 To 4
Set Combo = [Feuil1].OLEObjects("combobox" & ComboNr)
Combo_Object.Clear ' Pour éviter de remplir 2 fois, j'éfface tous avant de remplir
Combo_Object.AddItem "test1"
Combo_Object.AddItem "test2"
Combo_Object.AddItem "test3"
Combo_Object.AddItem "test4"
Combo_Object.AddItem "test5"
Next ComboNr

For ComboNr = 4 To 8
Set Combo = [Feuil1].OLEObjects("combobox" & ComboNr)
Combo_Object.Clear
Combo_Object.AddItem "A"
Combo_Object.AddItem "B"
Combo_Object.AddItem "C"
Combo_Object.AddItem "D"
Combo_Object.AddItem "E"
Next ComboNr

End Sub

Voila, j'espère que cela t'aidera

@Christophe@
 
S

SaYaN

Guest
re, @ christophe, le forum,

Je pensais que mon problème était résolu mais ca ne fonctionne pas dans mon code. J'ai repris ton code, je l'ai arrangé a mon fichier et il me renvoi tout le temps :"la methode ole objects de l'objet _worksheet a echoué".Ca se passe au niveau du Set, et j'ai beau chercher je vois pas ce qui peut lui poser problème.

voilà la ligne en question:

Dim Combo As OLEObject
Dim ComboNr As Byte

For ComboNr = 1 To 30
Set Combo = [Feuil1].OLEObjects("comboboxavis" & ComboNr)

Je continu je désespère pas !Et si quelqu'un d'autre que @christophe@ veut être mon sauveur, il sera le bienvenu !

A tt de suite.
 
@

@Christophe@

Guest
Bonjour,

Bon, bon, bon

Pourtant, cela doit marcher, dis moi tu utilises bien des combobox que tu trouves sur le bare Boite à outils de controles.

Parce que il y a aussi la bare de menu Formulaire???

Grand différence

Aussi non, envoi moi un fichier, par mail si il est trop gros et je regarde

Merci

@Christophe@
 
S

SaYaN

Guest
Effectivement j'étais persuadé que cela marcherait aussi !

J'ai bien pris mes combobox de la barre qui s'appelle commandes et non pas formulaire, d'ailleurs c'est en regardant ca que j'ai appris que la barre formulaire existait ! Tu sais me dire quelle est la différence au fait ?

Je t'envoi mon fichier, il est un peu lourd quand meme ! T'as juste à l'ouvrir et à accepter les macros, le code est à l'ouverture du fichier, des ke ca plante tu débog et tu seras placé sur la ligne en question !

Merci de regarder ca pour moi, a tt de suite.

PS: je sais pas comment faire j'ai pas ton mail, bref je fais un fichier excel qui reprend le pblm et qui fais moins de 50Ko et je le repass.
 
S

SaYaN

Guest
Je comprends plus rien là !

J'ai refais un fichier excel avec une dizaine de combobox, et ca marche très bien, par contre dans mon fichier ca passe toujours pas, et y a aucune différence.

La protection de la feuille ca peut faire kk chose ?

SaYaN
 
S

SaYaN

Guest
ca y est c bon ! Finalement ton code marche très très bien, c'est moi qui est chié (pour changer...).Mes premières combo sont à la ligne 7, donc forcément en commencant avec mon ComboNr à 1 il risquait pas de trouver de combo ... bref l'erreur est humaine, et c'est souvent de l'humain qu'elle provient ! mdr

Merci @christophe@, désolé d'avoir pris autant de temps, à la prochaine lol.

SaYaN
 
@

@Christophe@

Guest
Re

Super

Moi j'étais sur ton fichier, j'ai également vu que tu commencais avec For 1 to 30, tu devait plutôt mettre For 7 to 36, par contre cela bug toujours chez moi

Mais si tu as trouvé c'est le principal

Bonne journée

@Christophe@

P.S. Pourquoi des comboboxs et pas des liste de Validation dans le menu Données, c'est pourtant beaucoup plus simple???
 
@

@Christophe@

Guest
Re

Super

Moi j'étais sur ton fichier, j'ai également vu que tu commencais avec For 1 to 30, tu devait plutôt mettre For 7 to 36, par contre cela bug toujours chez moi

Mais si tu as trouvé c'est le principal

Bonne journée

@Christophe@

P.S. Pourquoi des comboboxs et pas des liste de Validation dans le menu Données, c'est pourtant beaucoup plus simple???
 

Discussions similaires

Statistiques des forums

Discussions
312 482
Messages
2 088 765
Membres
103 954
dernier inscrit
SirJah