Entrer la valeur d'une cellule dans une variable.

Résolu
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 - 21 avril 2008 à 12:23
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 - 21 avril 2008 à 15:40
bonjour,

je dispose de deux fichier, un fichier avec des onglets (leur nom est un numéro de client)
et un deuxieme fichier , ou le 1er onglet comporte la liste des numéro des clients.

je dispose d'une macro qui va récupérer des données dans le premier fichier (suivant l'onglet activé) ,et les copie dans le second fichier.
j'aimerai pouvoir, dans ma macro, entrer le nom de l'onglet a activer  en fonction de la liste en premiere page.
j'ai penser utiliser ceci :

' 2em fichier
Windows("fiche prev.xls").Activate
Sheets("num_client").Select   ' liste des numéro de la case A1 à A22
Cells(1, 1).Select    'selection du contenu de la case A1 ??
Selection.Value = x1
....
Windows("fiche 20 clients.xls").Activate   ' 1 er fichier
onglet = x1   'valeur a faire dinamyque par la suite , x1 pui x2 etc etc
Sheets("" & x1).Select              <---- ereur
Cells(1, 1).Select

test afin de copier une cellule seulement, jaimerai par la suite remplacer parl e code de mon autre macro qui elle fonctionne.
  Selection.Copy
  Windows("fiche prev.xls").Activate
  Sheets("Feuil1").Select
  Range("A1").Select
ActiveSheet.Paste

ceci étant un test, avan de me lancer dans la récupération des vrai données
je voudrai ensuite que ça soi dinamique, ( que sa me fasse pareil avec x2 ( numéro client de la case A2) ) etc etc pour 22 numéros

je sais pas si c'est très clair. mais je suis bloqué depuis un moment dessus alors votre aide me sera precieuse ;)
je vous remerci d'avance !! !
oliv

8 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 14:26
Salut,
oh... c'est pas comme ca que tu vas apprendre... tu pourrais fouiller le Forum, pour trouver les solutions des "problèmes" ou ils y a boucle + Excel

ou bien encore essayer des boucles...

Enfin bref passons, mais que je ne t'y reprenne pas.

Dim p As String
Dim i As Integer

   For i = 1 To 20
       p = Range("A" & CStr(i)).Value
       Sheets(p).Select
   Next , ----
[code.aspx?ID=41455 By Renfield]

PS: EVITE LE SMS: TON CLAVIER A PLEIN DE TOUCHES
@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 15:03
Re,

Pour faire varier les colonnes et non les lignes, il ne faut plus utiliser Range Mais Cells

Dim p As String
Dim NumColonne  As Integer
Dim NumLigne As Integer

   For NumLigne = 1 To 20
       For NumColonne = 1 To 5
           p = Cells(NumLigne, NumColonne).Value
           Sheets(p).Select
       Next NumColonne
   Next NumLigne, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Problème résolu??? => Pensez: Réponse acceptée
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 12:39
Salut,
le nom de la feuille à activer, ou d'une range peu très bien être dans une variable de type String.

Exemple;

Dim p As String
p = "Feuil2"
Sheets(p).Select, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 1
21 avril 2008 à 13:53
oui en effet ça marche comme sa, mais est - il possible de récupérer la valeur d'une case, par ex ds mon fichier ds le 1er onglet, jai ma premiere case avec  en A1: client001 , en A2 : client002

et ds mon otre fichier j'ai les onglet : client001,  client002

je voudrais pas avoir a changer le code si le nom des clients change, c'est pourquoi j'aimeria que mon x prenne la valeur en texte de ce qu'il y a dans les case.
pour pouvoir injecter X dans Sheets(x).Select

c'est possible?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 avril 2008 à 14:01
Salut,
Bah oui

Dim p As String
p = Range("A1").Value
Sheets(p).Select, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 1
21 avril 2008 à 14:21
;) vi sa marche ^^ jariv a récuperer les valeur du premier client!!

comment faire maintenan pour réaliser une boucle ki la premiere foi prend x1, ensuite x2 .... x22

x2 contiendra la valeur de A2 , x3 de A3 etc etc
et comment marquer dans le sheets(....).select afin que les x soi pris en compte succésivement  dans l'ordre.
0
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 1
21 avril 2008 à 14:30
oué merci bien, en fait c'est la solution que je venai d'aborder , celle que j'avais en tete avant étant surement pas possible.

je débute en VB alors crois moi que j'en fait des forum ^^
par contre un truc que j'ai pa trouver encor et qui pourrait m'etre util : pour faire une boucle ki va de A1 a A20 , j'ai bien compri , mais coment faire une boucle ki passe d'une lettre a une autre ,
premier tour , A , deuxième tour B etc etc

merci pour tes réponses en tout cas
0
livinho38 Messages postés 29 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 24 juillet 2009 1
21 avril 2008 à 15:40
ok , jvai faire une copie de tout sa ça pourra bien m'être util.

merci beaucouupp !!
oliv
0
Rejoignez-nous