VBE excel (zone de liste modifiable) [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
-
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
-
Bonjour tout le monde,

je vous explique mon problème et merci à ceux qui voudront m'aider.

Dans un fichier excel, il y a plusieurs feuilles qui représentent des performances de diverses machines. Pour simplifier, on dit que ces feuilles se nomment « machine A » « machine B » etc…
 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Je voudrais créer une zone de liste modifiable dans une nouvelle feuille « simulation ». Cette liste reprendra les noms des différentes feuilles existantes (machine A ; machine B ; etc…).

 

L’objectif est que : en cliquant sur la machine A dans la liste modifiable, une macro copie la feuille entière correspondant à la machine A dans la feuille « simulation ».

 

Ainsi je pourrais réaliser des simulations sur ce nouvel onglet.

 

Ensuite, en cliquant sur la machine B dans la liste, la macro efface les données de la feuille « simulation » puis copie à nouveau la feuille machine B dans l’onglet « simulation ».

 

M’avez-vous compris ? et pouvez-vous m’éclaircir dans le code que je pourrais taper dans vbe.

 

Merci beaucoup

4 réponses

Messages postés
129
Date d'inscription
jeudi 28 octobre 2004
Statut
Membre
Dernière intervention
23 mai 2009
1
Bonjour pour copier tu fais tout simplement un
  Sheets("Machine a").Select
    Cells.Select
    Selection.Copy
    Sheets("simulation ").Select
    ActiveSheet.Paste

Voila bien sur tu fais une petite interface ou tu peux choisir la feuille que tu veux importer
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Salut,
Pour commencer par le début, il te faut lister dans une zone de liste les noms des feuilles
Pour cela tu va créer un Userform et par une bloucle ayant pour fin Sheets.count tu va insérer le nom des feuilles dans la zone de liste du Userform

A la validation d'un nom dans la liste, tu appliqueras le code de BonDansUnPotAuFeu (j'l'm bien 7 la)

N'oublie pas de programmer soit en début de code soit en fin le nettoyage de la feuille "Simulation"

Juste au cas ou:
Le Userform tu pourras le créer à partir de
Macro/Visual Basic Editor
Insertion/Userform

Bon courage<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype> Cliquer "Réponse Acceptée"
Partageons Notre Savoir & Nos Acquis - JML
Messages postés
2
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008

Bonjour, et merci tout d’abord pour votre aide.


 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>


Je viens de créer un userform dans lequel j’ai crée un combobox.


 


Mais, étant débutant, je ne connais pas le code se terminant par sheets.count. C’est la même chose pour le code de la validation.


 


Comment lui dire ‘en cliquant sur « machine A » tu copies l’onglet « machine A » etc….’ ?


Merci d’avance pour votre aide,
Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Oui mais la il va falloir que tu cherches un peu dans les supports et autres bouquins de VBA

Pour ta 1ère question une boucle du type
    For I= 1 To Sheets.Count
        MonUseForm.MaListeDeroulante.Add Sheets(I).Name
   Next I

Pour ta 2ème question "Comment lui dire 'en cliquant sur « machine A » ..." la réponse t'a été donnée par MêmeSiCestBonAttentionAuPrion
Ce code s'exécutera par la pression de la souris sur le bouton que tu auras ajouté dans ton Userform
<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock v:ext="edit" aspectratio="t"></o:lock> Cliquer "Réponse Acceptée"
Partageons Notre Savoir & Nos Acquis - JML