Comment empêcher la liste déroulante d'être copiée

Tempio

XLDnaute Occasionnel
Salut à tous, j'ai un pti souci. J'ai une feuille de mon classeur où il y a une liste déroulante (provenant de l'outil formulaire). Sur cette feuille il y a un bouton me permettant d'effectuer la copie de la feuille active dans un repertoire. Mon problème est que je ne veux pas que ce menu déroulant aussi soit copié.

J'ai tenté d'aller dans les propriétés de l'outil et cocher "ne pas déplacer ou dimensionner avec les cellules" mais rien n'y fait. Je tente mm d'utiliser ce script que je n'arrive toujours pas à parametrer :

For Each Obj In Worksheets("CA").OLEObjects
If TypeOf Obj.Object Is MSForms.ComboBox Then
Obj.Delete
End If
Next Obj

Quelqu'un aurait une idée svp ? Merci d'avance, A+...
 
G

Guest

Guest
Re : Comment empêcher la liste déroulante d'être copiée

Bonjour,

Si le combo vient bien de la barre d'outils Formulaire:

Code:
Dim shp As Shape
For Each shp In Sheets("Feuil1").Shapes
    If shp.FormControlType = xlDropDown Then shp.Delete
Next

OleObjects concerne les contrôles de la barre "boîte d'outils Contrôles" A+
 

Papou-net

XLDnaute Barbatruc
Re : Comment empêcher la liste déroulante d'être copiée

Bonjour Tempio,

A première vue, les contrôles de la barre d'outils formulaires ne s'appellent pas ComboBox mais ZoneCombinée.

Si je puis me permettre un conseil, utilises plutôt les contrôles de la barre d'outils "Contrôles", beaucoup plus souples que les précédents. De plus, le référencement à ces contrôles, leurs propriétés et leur comportement sont en tout point identiques à ceux utilisés dans les UserForms.

Voilà tout ce que je peux dire en l'absence d'un fichier exemple.

Espérant avoir été utile.

Cordialement.

Edit : Bonjour Hasco.
 
Dernière édition:

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Merci Hasco, je vais tout de suite tester ton code et je vous tien informé, A+.

Bonjour,

Si le combo vient bien de la barre d'outils Formulaire:

Code:
Dim shp As Shape
For Each shp In Sheets("Feuil1").Shapes
    If shp.FormControlType = xlDropDown Then shp.Delete
Next

OleObjects concerne les contrôles de la barre "boîte d'outils Contrôles" A+
 

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Salut à toi Papou-net, j'ai en effet tenté d'utiliser les outils de la barre d'outil "contrôle" mais je ne parvenais pas à alimenter ma liste déroulante avec les données d'un feuille extérieure. Ce que j'arrive plutot à faire simplement avec ceux de l'outil "formulaire". Je cherche encore des cours pour me perfectionner en VBA, et j'espère que bientôt nous parlerons le mm langage lol. Merci pour ton intervention, A+.
 

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Malheureusement Hasco, il ya une erreur qui est générée lorsque je compile "erreur définie par l'application ou par l'objet". J'essaie de savoir ce que cela peut vouloir dire et merci pour l'aide.
 

Papou-net

XLDnaute Barbatruc
Re : Comment empêcher la liste déroulante d'être copiée

Salut à toi Papou-net, j'ai en effet tenté d'utiliser les outils de la barre d'outil "contrôle" mais je ne parvenais pas à alimenter ma liste déroulante avec les données d'un feuille extérieure. Ce que j'arrive plutot à faire simplement avec ceux de l'outil "formulaire". Je cherche encore des cours pour me perfectionner en VBA, et j'espère que bientôt nous parlerons le mm langage lol. Merci pour ton intervention, A+.

Pour remplir un combobox avec les données d'une autre feuille (du même classeur), il suffit de faire un clic droit sur le contrôle, cliquer sur propriétés et renseigner la ligne ListFillRange comme suit :

Code:
Feuil2!A1:A20

Il faut bien sûr activer le mode création sur l'onglet auparavant.

Cordialement.

PS : exemple sur le fichier joint.
 

Pièces jointes

  • Tempio.xls
    19 KB · Affichages: 43
  • Tempio.xls
    19 KB · Affichages: 44
  • Tempio.xls
    19 KB · Affichages: 52

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Merci c'est gentil et vais vais regarder tout ça à l'instant même.

Pour remplir un combobox avec les données d'une autre feuille (du même classeur), il suffit de faire un clic droit sur le contrôle, cliquer sur propriétés et renseigner la ligne ListFillRange comme suit :

Code:
Feuil2!A1:A20

Il faut bien sûr activer le mode création sur l'onglet auparavant.

Cordialement.

PS : exemple sur le fichier joint.
 

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Salut Papou-net, et merci pour le coup de pouce. J'arrive à alimenter ma liste sauf qu'il va falloir que je modifie certaines choses par la suite.

Comment je puis recupérer la valeur sélectionnée de cette liste pour effectuer une RechercheV ? Pace que je veux qu'en sélectionnant un nom dans la liste, je puisse avoir toutes les information concernant l'individu provenant de la "feuille2 (BDD)" grace à la fonction RechercheV().
 

Papou-net

XLDnaute Barbatruc
Re : Comment empêcher la liste déroulante d'être copiée

Salut Papou-net, et merci pour le coup de pouce. J'arrive à alimenter ma liste sauf qu'il va falloir que je modifie certaines choses par la suite.

Comment je puis recupérer la valeur sélectionnée de cette liste pour effectuer une RechercheV ? Pace que je veux qu'en sélectionnant un nom dans la liste, je puisse avoir toutes les information concernant l'individu provenant de la "feuille2 (BDD)" grace à la fonction RechercheV().

Pour récupérer la ligne sélectionnée, tu affectes une cellule à la propriété LinkedCell de ta ComboBox. Tu peux ensuite utiliser cette cellule dans ta formule RechercheV sans problème.

Dans l'exemple joint, j'ai affecté la cellule C1 de Feuil1 à LinkedCell de Combobox1.

Mais tu pourrais tout aussi bien affecter la propriété Value de ComboBox1 à une variable, et utiliser cette variable dans une macro de recherche.

Dans l'exemple joint, j'ai créé un 2ème ComboBox qui affiche des données en ligne 10 de l'onglet 1.

Cordialement.
 

Pièces jointes

  • Tempio.xls
    28 KB · Affichages: 41
  • Tempio.xls
    28 KB · Affichages: 39
  • Tempio.xls
    28 KB · Affichages: 43

Tempio

XLDnaute Occasionnel
Re : Comment empêcher la liste déroulante d'être copiée

Ca y est, c'est bon pour moi : grace à ceci, j'arrive à virer et mon bouton et ma liste déroulante lors de la copie du fichier :

If shp.Name Like "listeMenu" Or shp.Name Like "btnEnreg" Then shp.Delete

Merci pur votre aide et bonne journée.
 

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC