Entrer la valeur d'une cellule dans une variable. [Résolu]

Signaler
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
-
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
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
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
1
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?
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
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
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
1
;) 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.
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
1
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
Messages postés
29
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
24 juillet 2009
1
ok , jvai faire une copie de tout sa ça pourra bien m'être util.

merci beaucouupp !!
oliv