livinho38
Messages postés29Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention24 juillet 2009
-
21 avril 2008 à 12:23
livinho38
Messages postés29Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention24 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
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201259 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
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201259 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]
livinho38
Messages postés29Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention24 juillet 20091 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?
Vous n’avez pas trouvé la réponse que vous recherchez ?
livinho38
Messages postés29Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention24 juillet 20091 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.
livinho38
Messages postés29Date d'inscriptionlundi 21 avril 2008StatutMembreDernière intervention24 juillet 20091 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