therealmitch
Messages postés14Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention 5 janvier 2009
-
2 oct. 2008 à 14:36
therealmitch
Messages postés14Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention 5 janvier 2009
-
2 oct. 2008 à 16:22
Alors d'abord un grand bonjour à tous, je viens de m'inscrire sur votre forum qui à l'air très pro!
J'ai pour habitude de chercher par moi même dans les milliers de problème rencontrés par d'autres mais là vraiment j'ai l'impression qu'en VB chaque problème est différent, et comme en plus je débute, je comprend rarement les réponses apportées.
Alors voila mon problème, je voudrais créer une macro sous excel.
Etape 1 : en cliquant sur un bouton (dans Fichier1) une msgbox s'ouvre dans et demande à l'utilisateur d'indiquer le fichier (Fichier2) ou se trouve les données
Etape 2 : La macro selectionne les données dans la feuille F2 désignée (elles seront toujours dans les mêmes cellules)
Etape 3 : La macro recopie les données dans la feuille F1 (se sera tjs dans les mêmes cellules)
Je voudrais (si c'est pas trop demandé) comprendre votre réponse pour pouvoir la reproduire avec des données placées ailleurs et à placer ailleurs sans avoir à vous demander le code complet à chaque fois.
Si l'un de vous à le temps de m'aider se serait génial, alors merci d'avance
Mitch
A voir également:
Copie de données depuis fichier xls à nom changeant vers fichier xls à nom chang
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 2 oct. 2008 à 16:04
Re,
Dans ce cas utilises deux objets WorkBook
Le premier WDestination est ton classeur ou tu à la boite de dialogue et donc ActiveWorkBook avant l'ouverture de l'autre. Puis le second Wsource est le classeur ouvert par l'utilisateur et donc ActiveWorkBook après l'ouverture donc cela donnerait un truc du style
Dim WDestination As Workbook
Dim WSource As Workbook
Set WDestination = ActiveWorkbook
If Application.Dialogs(xlDialogOpen).Show Then
Set WSource = ActiveWorkbook
Call WSource.Worksheets("Feuil2").Range("A3").Copy(WDestination.Worksheets("Feuil1").Range("A1"))
'ensuite on ferme la source
Call WSource.Close(False) 'False pour ne pas sauver
'On enregistre le classeur destination
Call WDestination.Save
End If , ----
[../code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 2 oct. 2008 à 15:29
Salut,
Etape1: Utilises Application.Dialogs(xlDialogOpen).Show qui permet depsui excel d'ouvrir un fichier (et donc de le choisir)
Etape 2 , 3 : Une fois ouvert tu peux faire référence au classeur actif par
ActiveWorkBook
Pour copier une cellule d'une feuille donné
therealmitch
Messages postés14Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention 5 janvier 2009 2 oct. 2008 à 15:57
merci julien de t'occuper de mon problème,
l'étape1 c'est déja bien, cela m'ouvre une boite de dialogue pour choisir le fichier ok.
parcontre pour la suite je n'ai pas été clair, ce n'est pas d'une feuille à l'autre mais d'un fichier à un autre (sachant que je ne peux me fier à aucun nom de fichier puisqu'ils sont variables).
therealmitch
Messages postés14Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention 5 janvier 2009 2 oct. 2008 à 16:06
j'ai trouvé la réponse à mon probleme, j'enregistre une nouvelle macro durant laquelle je clik sur un bouton auquel j'ai affecté la macro 1.
une fois le fichier ouvert je selectionne mes données et fais un ALT+TAB, ca reviens d'office sur le classeur contenant la macro. et je colle mes données. je stop l'enregistrement et affecte à un 2eme bouton.
ca march!
si t'as plus propre hesite pas sinon un grand merci!
Vous n’avez pas trouvé la réponse que vous recherchez ?