Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1519 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA][Excel] modif- selection onglet source.[résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA][Excel] modif- selection onglet source.[résolu]

n°2188185
larmabak
Posté le 30-04-2013 à 13:43:27  profilanswer
 

Bonjour à tous!
 
alors voila mon problème. je travail sur un fichier excel qui analyse des données de retour garanti (Projet suivi garantie.xls). la première étape c'est de récupérer les données.  
 
le fichier source (Compilation Audi 09-2007 à aujourd'hui.xls) contient plusieurs onglets qui correspondent à différent produits.(D4/C7/MQB/Au716)
 
j'ai donc, dans la feuille2 de "Projet suivi garantie.xls" une zone nommé "produits-Audi" utilisé pour faire une liste déroulante de choix sur la feuille1  
j'ai nommé cette cellule "choix_pdt".  
 
je voudrais donc modifier mon code pour qu'il utilise la valeur enregistré dans choix_pdt pour copier les données depuis l'onglet correspondant.  
 
 
j'ai utilisé l'enregistreur de macro pour obtenir ceci.  
"= tentative de modif infructueuse.
 

Code :
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' enregistre les valeurs de la base de donnée
  5. "dim CP as variant
  6. "CP = choix_pdt
  7.     Windows("Compilation Audi 09-2007 à aujourd'hui.xls" ).Activate
  8.     Sheets("D4" ).Select "Sheets("CP" ).Select
  9.     Columns("O:S" ).Select
  10.     Selection.Copy
  11.     Windows("Projet suivi garantie.xls" ).Activate
  12.     Sheets("Feuil2" ).Select
  13.     Range("B1" ).Select
  14.     ActiveSheet.Paste
  15.   End Sub


 
j'ai un bug dès la deuxième ligne,
Sheets("CP" ).Select  
quel est la marche à suivre pour qu'excel comprenne que CP contient le nom de l'onglet qu'il doit viser?
 
merci pour les conseils!


Message édité par larmabak le 06-05-2013 à 16:13:11
mood
Publicité
Posté le 30-04-2013 à 13:43:27  profilanswer
 

n°2188218
Marc L
Posté le 30-04-2013 à 15:24:07  profilanswer
 


           Bonjour.
 
           Tout ce qui est entre guillemets est seulement du texte et ne représente donc pas une variable …
 

n°2188225
larmabak
Posté le 30-04-2013 à 15:38:30  profilanswer
 

Marc L a écrit :


           Bonjour.
 
           Tout ce qui est entre guillemets est seulement du texte et ne représente donc pas une variable …
 


 merci Marc pour ta réponse.  
j'ai donc enlevé les guillemets,  
 

Code :
  1. Sheets(CP).Select


 
mais il y a une erreure d'execution '9' l'indice n'appartient pas à la sélection.  
 
je dois faire une déclaration spéciale de CP ?

n°2188229
Marc L
Posté le 30-04-2013 à 15:45:41  profilanswer
 

 
           Pas obligé.
 
           Non cela veut juste dire que le contenu CP ne correspond pas à une feuille existante ...
 
           Exemple pour une feuille nommée Projet :   CP = "Projet"
 

n°2188236
larmabak
Posté le 30-04-2013 à 16:09:41  profilanswer
 

choix_pdt est le nom d'une cellule que je rempli par une séléction dans une liste déroulante. la liste correspond aux noms de feuilles excel du fichier source.  
 

Code :
  1. CP = choix_pdt


avec ça la variable CP doit avoir enregistré la valeur contenu dans la cellule choix_pdt normalement, non?  
 
j'avais fait le choix de la liste déroulante pour que l'utilisateur ne puisse pas faire de fautes d'écriture, et justement éviter les erreurs que j'obtiens.
 
edit:  
bon du coup j'ai une idée qui germe dans ma tête, ça serait de faire un test sur choix_pdt, il y a 4 produit donc en 3 test on peut résoudre le problème. mais si il y a de nouveaux produits, ce code serait moins facilement adaptable. donc utiliser directement la cellule avec liste déroulante serait ma meilleure solution.  


Message édité par larmabak le 30-04-2013 à 16:34:26
n°2188247
Marc L
Posté le 30-04-2013 à 16:42:48  profilanswer
 

 
           Normal car tel quel, choix_pdt est prise pour une variable au lieu d'une cellule nommée ‼
 
           Il faut faire attention à bien qualifier les objets …
 
                      CP = Range("choix_pdt" )          ou bien encore           CP = [choix_pdt]
 

n°2188252
larmabak
Posté le 30-04-2013 à 17:16:35  profilanswer
 

Merci!  
maintenant que je donne correctement une valeur à CP, la suite ne pause plus de problème.  
 
encore merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA][Excel] modif- selection onglet source.[résolu]

 

Sujets relatifs
S.O.S excel/access VBAerreur formule excel
[VBA-Macros][Excel]Comparaison de deux datesA l'aiiiiide.!! Programation Excel urgent
obfusquer code source phpTransformer x onglets Excel en x pdf
Excel : Vlookup et lookupVBA Gestion de Portefeuille, portefeuille optimal
Plus de sujets relatifs à : [VBA][Excel] modif- selection onglet source.[résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR