VBA-Copie données ficher 1 feuille A vers ficher 2 feuille B
Résolu/Fermé
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
-
29 juil. 2016 à 16:27
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 - 1 août 2016 à 16:53
NaXiLeAn Messages postés 112 Date d'inscription mercredi 27 juillet 2016 Statut Membre Dernière intervention 2 juin 2020 - 1 août 2016 à 16:53
A voir également:
- VBA-Copie données ficher 1 feuille A vers ficher 2 feuille B
- Feuille de pointage excel - Télécharger - Tableur
- Erreur 1004 vba ✓ - Forum VB / VBA
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Windows 7 vers windows 10 - Guide
- Copie cachée - Guide
3 réponses
ccm81
Messages postés
10545
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
20 mars 2023
2 336
Modifié par ccm81 le 29/07/2016 à 18:42
Modifié par ccm81 le 29/07/2016 à 18:42
Pour écrire dans un fichier fermé, je crois que c'est un peu compliqué
Une solution simple, ouvrir le fichier 2, faire la copie, sauvegarder et fermer
Cdlmnt
Une solution simple, ouvrir le fichier 2, faire la copie, sauvegarder et fermer
Const FeuilleSource = "Feuil1"
Const FichierBut = "D:\Fbut.xls"
Const FeuilleBut = "Feuil1"
Public Sub OK()
Dim plageS As Range, lifin As Long, cofin As Long
With Sheets(FeuilleSource)
lifin = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
cofin = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
Set plageS = .Range(.Cells(1, 1), .Cells(lifin, cofin))
plageS.Copy
Workbooks.Open FichierBut
Sheets(FeuilleBut).Select
Cells(1, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
End With
End Sub
Cdlmnt
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 29/07/2016 à 18:41
Modifié par ThauTheme le 29/07/2016 à 18:41
Bonjour NaXiLeAn, bonjour le forum
Tu dois utiliser une variable Workbook et la définir :
Mais si tu dis que le code est dans la classeur source, je ne comprends pas pourquoi tu cherches à l'ouvrir ? Il devrait déjà être ouvert, non ?
Voilà comment je fais dans ce genre de cas (macro à placer dans le classeur source) :
Attention :
• ce code implique que les deux classeurs se trouvent dans un seul et même dossier, sinon ça peut planter.
• ton classeur source prendra l'extension xlsm à cause de la macro...
[Édition]
Bonjour CCM, nos posts se sont croisés...
À plus,
ThauTheme
Tu dois utiliser une variable Workbook et la définir :
Dim CS As Workbook Set CS = Workbooks.Open(Filename:="C:\source\"Source.xlsx")
Mais si tu dis que le code est dans la classeur source, je ne comprends pas pourquoi tu cherches à l'ouvrir ? Il devrait déjà être ouvert, non ?
Voilà comment je fais dans ce genre de cas (macro à placer dans le classeur source) :
Sub Macro1() Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim CH As String 'déclare la variable CH (CHemin d'accès) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim CD As Workbook 'déclare la variable CD (Classeur Destination) Dim CD As Worksheet 'déclare la variable OD (Onglet Destination) Set CS = ThisWorkbook 'définit le classeur source CS CH = CS.Path & "\" 'définit le chemin d'accès CH Set OS = CS.Worksheets("FeuilSource") 'définit l'onglet source OS On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante) 'définit le classeur destination CD (génère une erreur si le classeur n'est pas ouvert) Set CD = Workbooks("Destination.xlsx") If Err <> 0 Then 'condition : si une erreur a été générée Err.Clear 'supprime l'erreur Workbooks.Open (CH & "Destination.xlsx") 'ouvre le classeur "Destination.xlsx" Set CD = ActiveWorkbook 'définit le classeur destination CD End If 'fin de la condition On Error GoTo 0 'annule la gestion des erreurs OD = CD.Sheets("FeuilDestination") 'définit l'onglet destination OD 'copie toules les celluleS de l'ongLet source OS et les colle dans A1 de l'onglet destination OD OS.Cells.Copy OD.Range("A1") CS.Close False 'ferme le classeur source CS sans enregistrer End Sub
Attention :
• ce code implique que les deux classeurs se trouvent dans un seul et même dossier, sinon ça peut planter.
• ton classeur source prendra l'extension xlsm à cause de la macro...
[Édition]
Bonjour CCM, nos posts se sont croisés...
À plus,
ThauTheme
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
1 août 2016 à 16:53
1 août 2016 à 16:53
Bonjour,
Finalement le code trouvé ne fonctionne pas.
J'essai le tien sans succès.
Si tu as un moment à me consacrer?
La macro se trouve sur mon fichier destination.
Il s'agit d'un fichier (presque) vide dans lequel je veux incrémenter mes données qui se trouve sur le fichier source.
La macro (et le bouton de lancement de cette macro) se trouve sur le fichier ouvert qui est donc le fichier destination.
Voilà ce que je veux faire par étape :
1- j'ouvre manuellement mon fichier destination et je lance ma macro
2-le fichier source souvre, grace à la macro.
3-Les données sont copiés sans mise en forme
4-Le fichier source se ferme sans enregistrement
5-Les données copiées sont collées dans le fichier déjà ouvert (destination)
6-D'autres traitements sont alors lancés...
Finalement le code trouvé ne fonctionne pas.
J'essai le tien sans succès.
Si tu as un moment à me consacrer?
La macro se trouve sur mon fichier destination.
Il s'agit d'un fichier (presque) vide dans lequel je veux incrémenter mes données qui se trouve sur le fichier source.
La macro (et le bouton de lancement de cette macro) se trouve sur le fichier ouvert qui est donc le fichier destination.
Voilà ce que je veux faire par étape :
1- j'ouvre manuellement mon fichier destination et je lance ma macro
2-le fichier source souvre, grace à la macro.
3-Les données sont copiés sans mise en forme
4-Le fichier source se ferme sans enregistrement
5-Les données copiées sont collées dans le fichier déjà ouvert (destination)
6-D'autres traitements sont alors lancés...
NaXiLeAn
Messages postés
112
Date d'inscription
mercredi 27 juillet 2016
Statut
Membre
Dernière intervention
2 juin 2020
1
1 août 2016 à 12:02
1 août 2016 à 12:02
Bonjour,
Merci à vous!
Entre temps, j'ai trouvé la commande suivante :
(Avec les vrais noms de fichiers)
'Intègre les données du fichier source sans le modifier
Workbooks.Open Filename:="C:\Users\xx\Desktop\Fiche 1305\source\verifaprespaie.xlsx"
Workbooks("verifaprespaie.xlsx").Sheets("VERIFAPRESPAIE").Cells.Copy _
Destination:=Workbooks("Fiche 1305_test.xlsm").Sheets("1305").Cells(1, 1)
Workbooks("verifaprespaie.xlsx").Close False ' ferme sans sauve
Merci à vous!
Entre temps, j'ai trouvé la commande suivante :
(Avec les vrais noms de fichiers)
'Intègre les données du fichier source sans le modifier
Workbooks.Open Filename:="C:\Users\xx\Desktop\Fiche 1305\source\verifaprespaie.xlsx"
Workbooks("verifaprespaie.xlsx").Sheets("VERIFAPRESPAIE").Cells.Copy _
Destination:=Workbooks("Fiche 1305_test.xlsm").Sheets("1305").Cells(1, 1)
Workbooks("verifaprespaie.xlsx").Close False ' ferme sans sauve