A voir également:
- Macro VBA pose problème demande aide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Excel compter cellule couleur sans vba - Guide
- Find vba - Astuces et Solutions
8 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
295
12 mai 2010 à 14:30
12 mai 2010 à 14:30
ben! c'est normal!
explication ...
ligne = 1 ' là c'est ta variable
While Not IsEmpty(Cells(ligne, 1)) ' tant que la ligne n'est pas vide ...boucle
ligne = ligne + 1 ' incrémente
Wend
et je sort quand la ligne est vide ; )
Workbooks("Saisie.xls").Sheets("Paramètre").Cells(ligne, 9).Value = valeur
' ici j'écris une ligne vide.
je suppose que tu voulais écrire la dernière ligne pleine parce que vide ça sert pas à grand chose.
j'aurai écris....
sub test()
Range("a65535").End(xlUp).Select
maValeur = activecell.value
numligne=activecell.row
end sub
explication ...
ligne = 1 ' là c'est ta variable
While Not IsEmpty(Cells(ligne, 1)) ' tant que la ligne n'est pas vide ...boucle
ligne = ligne + 1 ' incrémente
Wend
et je sort quand la ligne est vide ; )
Workbooks("Saisie.xls").Sheets("Paramètre").Cells(ligne, 9).Value = valeur
' ici j'écris une ligne vide.
je suppose que tu voulais écrire la dernière ligne pleine parce que vide ça sert pas à grand chose.
j'aurai écris....
sub test()
Range("a65535").End(xlUp).Select
maValeur = activecell.value
numligne=activecell.row
end sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
12 mai 2010 à 15:13
12 mai 2010 à 15:13
Bonjour,
'recherche de la première ligne et enregistre tous les nom des fournisseur dans le fichier "Saisie.xls" onglet "Paramètre"
Beh oui... Mais "tous les noms des fournisseurs" y sont où ?
A+
'recherche de la première ligne et enregistre tous les nom des fournisseur dans le fichier "Saisie.xls" onglet "Paramètre"
Beh oui... Mais "tous les noms des fournisseurs" y sont où ?
A+
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
295
12 mai 2010 à 15:46
12 mai 2010 à 15:46
bon je reprends ... ton programme ne fais qu'écrire un vide et rien d'autres.
j'ai essayé de te l'expliquais.
mais je reconnais que je n'ai pas lu ton commentaire mis en évidence par lermite222 .
pour avancer ... tu dis ce qu'il y a dans la collone A B C D.... et I
Ah oui! dans ton programme "valeur" n'est jamais renseigné.
j'ai essayé de te l'expliquais.
mais je reconnais que je n'ai pas lu ton commentaire mis en évidence par lermite222 .
pour avancer ... tu dis ce qu'il y a dans la collone A B C D.... et I
Ah oui! dans ton programme "valeur" n'est jamais renseigné.
Bidouilleu_R et lermite222 je vous remerci de m'aider mais j pense que ca serai mieux si je vous reexpliquer. J'ai 10 fichier excel sur lequel j'ai le nom d'un fournisseur ( qui se trouve dans la cellule A1 de tous les fichiers) et je voudrais que ces dix nom ce reporte dans un autre fichier ( nomme "Saisie" onglet "Paramètre"). donc arriver a avoir tous les nom des fournisseurs j'espère que j'ai bien expliqué merci d'avance
salut,
si j'ai bien compris ce que tu veux faire, voici une ou 2 pistes pour avancer un peu : il faut donc que ta macro ouvre tes 10 fichiers, dans ce cas la syntaxe c'est :
je n'ai pas tester, donc a verifier et il faut aussi adapter en fonction de tes noms de fichiers...
a+
si j'ai bien compris ce que tu veux faire, voici une ou 2 pistes pour avancer un peu : il faut donc que ta macro ouvre tes 10 fichiers, dans ce cas la syntaxe c'est :
Workbooks.Open Filename:="Chemin\nomfichier1.xls"ensuite tu dois recuperer la valeur de chaque cellule A1 puis mettre cette valeur dans ton fichier de parametre :
workbooks("Saisie".xls").Sheets("Paramètre").Range("A1").Value=workbooks("nomfichier1.xls").Sheets("nomfeuil").Range("A1").Valueet ainsi de suite. A partir de ca, tu peux faire une boucle pour ne pas repeter 10 fois la manip. Du genre :
Dim nomfic(10) as string nomfic(1)= "chemin\nomfichier1" nomfic(2)= "chemin\nomfichier2" ... for i = 1 to 10 Workbooks.Open Filename:=nomfic(i) workbooks("Saisie".xls").Sheets("Paramètre").Range("A" & i).Value=workbooks(nomfic(i)).Sheets("nomfeuil").Range("A1").Value next
je n'ai pas tester, donc a verifier et il faut aussi adapter en fonction de tes noms de fichiers...
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut pixel,
deja petite rectification, il y avait un guillemet de trop et une autre erreur :-) :
a+
gab
deja petite rectification, il y avait un guillemet de trop et une autre erreur :-) :
Dim repfic(10) as string 'ici tu declare un tableau contenant 10 chaines de caracteres : il s'agit du repertoire de chaque fichier Dim nomfic(10) as string 'ici tu declare un tableau contenant 10 chaines de caracteres : il s'agit du nom de chaque fichier 'ici tu remplit ton tableau avec les noms de tes 10 fichiers.. nomfic(1)= "nomfichier1.xls" nomfic(2)= "nomfichier2.xls" 'ici tu remplit ton tableau avec les noms des repertoires de tes 10 fichiers.. repfic(1)= "repfichier1" repfic(2)= "repfichier2" ... 'boucle sur les 10 fichiers: for i = 1 to 10 'ouverture du fichier Workbooks.Open Filename:=repfic(i) & "\" & nomfic(i) 'on recupere la valeur qu il y a dans A1 et on la met dans le fichier paramètre ( il faut que tes 10 feuilles aient le meme nom sinon il faudrat un peu modifier le code...) workbooks("Saisie.xls").Sheets("Paramètre").Range("A" & i).Value=workbooks(nomfic(i)).Sheets("nomfeuil").Range("A1").Value next
a+
gab
dans ce cas tu mets tous tes fichiers excel dans un repertoire, ce repertoire ne devra contenir que ces fichiers excel (ceux ou y a les noms des fournisseurs) et rien d'autre.
avec ca ca devrait marcher (sauf si tes feuilles n ont pas le meme nom, dans ce cas il faudra faire quelques améliorations)
Bon courage :-)
avec ca ca devrait marcher (sauf si tes feuilles n ont pas le meme nom, dans ce cas il faudra faire quelques améliorations)
Set fso = CreateObject("Scripting.FileSystemObject") Set rep = fso.getfolder("c:\temp\fichiers_des_fournisseurs") Set fichiers = rep.Files 'pour chaque fichier dans le repertoire : on ouvre le fichier et on recupere la valeur dans "A1" For Each fichier_excel In fichiers i = i + 1 Workbooks.Open Filename:=fichier_excel 'on recupere la valeur qu il y a dans A1 et on la met dans le fichier paramètre workbooks("Saisie.xls").Sheets("Paramètre").Range("A" & i).Value=Workbooks(fichier_excel.Name).Sheets("Feuil1").Range("A1").Value Workbooks(fichier_excel.Name).Close ' on ferme le fichier au passage Next
Bon courage :-)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
Modifié par lermite222 le 16/05/2010 à 16:12
Modifié par lermite222 le 16/05/2010 à 16:12
Sur un poste plus haut tu dis...
y son sur un fichier nommer "mensuel" onglet "Feuil1
Donc : ce serait le classeur.. Mensuel.xls sheets("Feuil1") colonne "A" ?
Tu dis ensuite...
J'ai 10 fichier excel sur lequel j'ai le nom d'un fournisseur ( qui se trouve dans la cellule A1 de tous les fichiers)
Là il y a une contradictions entre tes deux versions, faudrait essayer d'être plus précis, et surtout plus clair.
Répond POSEMENT et en REFLECHISSANT.
Où sont les noms des clients que tu veux saisir ????
Et jusqu'à présent, le but de la manoeuvre n'est toujours pas définit ??
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
y son sur un fichier nommer "mensuel" onglet "Feuil1
Donc : ce serait le classeur.. Mensuel.xls sheets("Feuil1") colonne "A" ?
Tu dis ensuite...
J'ai 10 fichier excel sur lequel j'ai le nom d'un fournisseur ( qui se trouve dans la cellule A1 de tous les fichiers)
Là il y a une contradictions entre tes deux versions, faudrait essayer d'être plus précis, et surtout plus clair.
Répond POSEMENT et en REFLECHISSANT.
Où sont les noms des clients que tu veux saisir ????
Et jusqu'à présent, le but de la manoeuvre n'est toujours pas définit ??
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
j'ai un fichier Excel nommer "Saisie" sur un de ces onglets j'ai créer un formulaire ( "Contrat")onglet ou je peut saisir des données. une fois que je valide ce dernier j'ai une feuille qui s'ouvre et qui c'est nommer en meme temps sous le nom du fournisseur. sur cette feuille j'ai le nom du fournisseur que je veut recupere (cellule B4). et ce que je cherche a faire c'est recupere lesnom des fournisseur sur le fichier "Saisie" onglet "Paramètre"
voila mes dossier si quelqu'un veut m'aider :
https://www.cjoint.com/?frmFcgSMpG
https://www.cjoint.com/?frmFC1Ejxc
https://www.cjoint.com/?frmFcgSMpG
https://www.cjoint.com/?frmFC1Ejxc
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
17 mai 2010 à 16:46
17 mai 2010 à 16:46
J'ai regardé tes deux classeurs,
en essayant de comprendre...
Mais Puiffff, que tu complique les choses... Pour faire une appli un peu complexe tu ferais bien d'abord d'un peu apprendre le VBA.
Pas besoin d'autant de classeurs que de fournisseurs, mémoriser toutes les données dans une feuille ligne par ligne en numérotant (ou pas) les fournisseurs.
Facile ensuite de retrouver quelque chose.
Avant de te lancer dans une appli tu doit savoir exactement ce que tu veux faire et pas avancer le nez en l'air.
Une piste pour te donner des idées !
A+
en essayant de comprendre...
Mais Puiffff, que tu complique les choses... Pour faire une appli un peu complexe tu ferais bien d'abord d'un peu apprendre le VBA.
Pas besoin d'autant de classeurs que de fournisseurs, mémoriser toutes les données dans une feuille ligne par ligne en numérotant (ou pas) les fournisseurs.
Facile ensuite de retrouver quelque chose.
Avant de te lancer dans une appli tu doit savoir exactement ce que tu veux faire et pas avancer le nez en l'air.
Une piste pour te donner des idées !
A+
J ai aussi regardé tes 2 classeurs (sans essayer de tout comprendre), j'ai fait un test et il y a bien la valeur fournisseur qui se stocke dans ta premiere ligne non vide de la feuille Paramètre (cad la valeur qui est entre dans une textbox=> ca marche et je ne vois pas le lien avec le deuxieme fichier, puisque la valeur est recupéré d une textbox: UserForm1.TextBox17.Text, d autant plus que le 2eme fichier est créé après avoir ecrit la valeur dans la feuille paramètre) ... je ne comprend pas ou est ton probleme (toujours pas....)
12 mai 2010 à 14:51