Macro : copier/coller
Bonjour , j'ai besoin d'aide.
Je cherche un code macro qui me permet d'aller copier des informations dans un fichier cible qui se trouve dans un dossier nommer "effectifs outil" dans mon environnement bureau , et de les coller dans mon fichier source (nouvel outil Organisation Cuisine).
Je m'explique : en gros je voudrai si possible une macro dans mon fichier source que j'aurai ouvert (nouvel outil Organisation Cuisine) et quand je clique sur un bouton, le fichier cible "effectifs outil" (qui se trouve dans un dossier "effectifs outil" ,dans mon environnement bureau) s'ouvre et qu'il vienne copier la plage de cellule de l'onglet 1 du fichier cible ("A1:H124"): puis copie dans l'onglet "dejeuner" de mon fichier source ("A1:H124"). Même étape pour l'onglet 4 copie les infos du (ficher cible de l'onglet 4) ("A1:H75") et les copier dans l'onglet "diner"("A1:H75") de mon fichier source. On ferme le fichier cible et on le détruit. On Enregistre dans le fichier source. La difficulté est que mon fichier cible peut avoir des noms différents (variant) ainsi que ses 4 onglets , il faut simplement copier les infos de l'onglet 1 et 4 de ce fichier cible qui se trouve dans un dossier ("effectifs outil") dans mon environnement bureau et de les copier sur le fichier source ouvert (nouvel outil Organisation Cuisine) qui lui à 2 onglets renommés ("dejeuner" , "diner").
J'espère être clair dans ma demande et si possible , et d'avance merci de votre aide.
Merci à vous.
Bonjour
J'ai pas tout suivi, mais comme il n y a aucun fichier j'ai fais quelques test
Une idée à adapter de deux façon si vous voulez bosser ce week-end sur votre fichier, sa peut vous servir de base de travail sauf si quelqu'un à un truc tout fait, j'ai fais quelques test avec ce que vous avez dit mais sans plus n'ayant pas de fichier et pas trop le temps
Sub CopierDatas()
Dim CN As ADODB.Connection, Fichier As String, Req As String, Rst As ADODB.Recordset
Dim Feuille As String, chemin As String
chemin = ThisWorkbook.Path & "\"
Fichier = chemin & Dir(chemin & "Cible*.xlsx")
' Fichier = ThisWorkbook.Path & "\Cible*.xlsx"
Feuille = "Feuil1"
Set CN = New ADODB.Connection
With CN
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=""Excel 12.0;HDR=NO"""
.Open
End With
Req = "SELECT * FROM [" & Feuille & "$]"
Set Rst = New ADODB.Recordset
Set Rst = CN.Execute(Req)
Range("A1").CopyFromRecordset Rst
CN.Close
Set CN = Nothing
' Kill ThisWorkbook.Path & "\Cible*.xlsx"
End Subsinon en VBA a adapter si on veut qu'il prenne en compte les changement de nom des fichiers, j'ai fais des test vite fais 124 lignes maxi selon ce que vous dites ça va, sinon a voir pour partir sur des tableaux
Sinon PowerQuery pour faire des requêtes mais comme vous avez indiquer qu'il fallait détruire le fichier a voir avec les pros du forum
Sub Importer()
Dim i As Long, plage As Range, wk1 As Workbook
Workbooks.Open Filename:=ThisWorkbook.Path & "\Cible.xlsx"
i = Range("A1").End(xlDown).End(xlToRight).Row
Set plage = Range("A1:H" & i)
plage.Copy ThisWorkbook.Sheets(1).[A1]
Workbooks("Cible").Close
' Kill "Cible.xlsx"
End Sub
Bonjour et merci d'avoir pris connaissance de ma demande. Le fait de vous envoyer mes fichiers ne vas pas vous aider. Je recherche simplement du copier coller . J'ai un fichier.xls (ou son nom change chaque semaine) avec 4 onglets (le nom des onglets changent aussi chaque semaine) , et qui se trouve seul dans un dossier que j'ai nommé (effectifs outil).
J'ai un fichier nommé (nouvel outil organisation cuisine.xls) , ce fichier contient 2 onglets que j'ai renommé (dejeuner et diner) et je voudrai créer sur ce fichier (nouvel outil organisation cuisine.xls) une macro qui va me permettre d'aller copier les infos de l'onglet 1 du fichier.xls que je définit par une plage ("A1:H124") et de coller ses infos dans l'onglet "dejeuner" en A1 de mon fichier "nouvel outil organisation cuisine.xls" , même étape : copier les infos de l'onglet 4 du fichier.xls que je définit là aussi par une plage ("A1:H75") et de coller ses infos dans l'onglet "diner" en A1 de mon fichier "nouvel outil organisation cuisine.xls".
En faite les infos à copier/coller sont des tableaux avec des chiffres (je vous envoi un aperçu) , si je précise onglet 1 et 4 et le fait qu'il change de nom.
Si je ne suis pas assez précis dans ma demande je m'en excuse et je tiens à vous remercier d'avoir répondu à ma demande. Bien cordialement.
Bonjour,
Un peu quand même, si tu veux que les gens du forum te fournisse un fichier ou un code faut que tu mette quelques datas ou un bout de code, en regardant ton image, sa change beaucoup de chose entre mon tableau non structuré (pour le test) et tes tableaux qui ne sont pas les mêmes
Bonjour , Je reviens vers vous et encore merci pour votre aide. J’ai le départ de mon projet (avec beaucoup d’aide bien entendu !) je vous répète que je suis débutant. Pour cela je vous joins mon fichier nommé (nouvel outil organisation cuisine) contenant un début de code et mon fichier.xls dans un dossier nommé « effectifs outil » car il change de nom chaque semaine. Avec ce départ de code j’ai bien l’ouverture du fichier avec le nom de chaque feuille. Maintenant j’ai besoin de votre aide pour la suite du code. Je voudrai qu’il copie l’ensemble de la feuille1 plage ("A1:H124") pour la coller en A1 dans l’onglet dejeuner de mon tableau vierge (nouvel outil organisation cuisine), puis l’ensemble de la feuille 3 plage ("A1:H75") pour la coller en A1 sur l’onglet diner (nouvel outil organisation cuisine). Je parle en feuille car je me répète les 4 onglets peuvent changer de noms , sauf le fichier contenant la macro : l’onglet dejeuner et diner reste. On ferme le fichier.xls et on le détruit.
Si vous pouvez m’aider , merci.
Bonsoir,
Une tentative
Mais pas trop suivi le coup des 4 onglets qui n'ont pas le même nom ils prennent quelle nom au fur et a mesure ?
Bonjour , j'ai un message d'erreur . Le classeur source se trouve seul (cela signifie aucun autre fichier) dans un sous-répertoire nommé "effectifs outil" . Mon code envoyé ouvre ce classeur et affiche le nom des feuilles de ce classeur (une par une) pour montrer qu'on se fou du nom du fichier et des onglets . Ces feuilles constituent donc la feuille source à chaque passage de la boucle. Reste à trouver la suite qui va me permettre de copier coller ma demande cité plus haut. Je m'excuse d'avance sur ma demande pas très clair , je cherche désespérément une solution.
Merci quand même pour votre aide.
Bien cordialement.