Copier-Coller des données d'un fichier different à l'aide d'une macro

  • Initiateur de la discussion Initiateur de la discussion kev1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kev1

XLDnaute Nouveau
Bonjour,

je souhaiterais effectuer l'action suivante à l'aide d'une macro.
J'aimerais que lorsque j'appuie sur le bouton du ficher HFJ, la fenetre ouvrir d'Excel s'affiche à l'ecran et que je puisse selectionner le fichier HFJ-7 (le nom change en fonction des jours) puis copie les données de l'onglet "History_Forecast DD" et colle dans l'onglet "History & Forecast D-7" du fichier HFJ

Merci de votre aide
 

Pièces jointes

Re : Copier-Coller des données d'un fichier different à l'aide d'une macro

'llo

Voici mon idée :

' Importer
Dim nom$, WBKSource As Workbook
With Application.FileDialog(msoFileDialogOpen)
.Title = "Yeaaa choose your Fichier"
.Filters.Clear
.Filters.Add "Ton Tableur", "*.xlsX*, *.Xlsm*, *.Xls*"
.AllowMultiSelect = False
If .Show <> 0 Then
nom = .SelectedItems(1)
Set WBKSource = Workbooks.Open(nom)
With WBKSource
.ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1)
.Close False
End With
Else
MsgBox "Boaaa t'veux rien !", , "dô_Ôb": Exit Sub
End If
End With

' Renommer l'onglet '
temp = ThisWorkbook.Sheets(1).Name

' Le placer à la fin '
Sheets(temp).Move after:=Sheets(Sheets.Count)

' Copier Coller le contenu
Sheets(temp).Activate
ActiveSheet.UsedRange.Select
Selection.Copy

Sheets("History & Forecast D-7").Activate
Sheets("History & Forecast D-7").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

' Supprimer l'onglet inutile
Application.DisplayAlerts = False
Sheets(temp).Delete
Application.DisplayAlerts = True
 
Re : Copier-Coller des données d'un fichier different à l'aide d'une macro

explications :
- En un tu sélectionnes le fichier que tu souhaites importer
- En 2, il va en copier le contenu pour le coller dans un onglet temp
- En 3, il le colle à la suite de ton onglet -7
- Et enfin, il supprime l'onglet temporaire

Cela te semble-t-il coller à ta demande ?
 
Re : Copier-Coller des données d'un fichier different à l'aide d'une macro

Je suis debutant en VBA. Peux tu me guider pas à pas pour savoir où je dois ecrire la commande ou bien m'envoyer le fichier directement avec la macro?

Merci
 
Re : Copier-Coller des données d'un fichier different à l'aide d'une macro

Bonsoir le fil, bonsoir le forum,

J'avais commencé à plancher dessus, puis j'ai dû interrompre alors que j'avais presque terminé... C'est très similaire au code de don_pets mais j'envoie quand même puisque j'avais pris la peine de commenter le code...
Tu n'as pas précisé si, quand tu collais les valeurs, c'était en effaçant les anciennes ou en les plaçant en dessous de celles-ci. Tu adapteras selon, je t'ai laissé les indications pour...
Le code :

Code:
Sub Bouton1_Cliquer()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Object 'déclare la variable OD (Onglet Destination)
Dim CH As String 'déclare la variable CH (Chemin d'accès)
Dim F As Boolean 'déclare la variable F (Fichier)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Object 'déclare la variable OS (Onglet Source)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set CD = ThisWorkbook 'définit le classeur de destination CD
Set OD = CD.Sheets("History & Forecast D-7") 'définit l'onglet de destination OD
CH = CD.Path 'définit le chemin CH
'affiche la boîte de dialogue "Ouvrir" avec comme dossier par défaut le dossier contenant ce fichier et
'avec comme liste tous les fichiers .xlsm commençant par "HFJ-"
F = Application.Dialogs(xlDialogOpen).Show(CH & "\HFJ-*.xlsm")
If F = True Then 'condition 1 : si un fichier est ouvert
    Set CS = ActiveWorkbook 'définit le classeur source CS
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    Set OS = CS.Sheets("History_Forecast DD") 'définit l'onglet source OS (génère une erreur si cet onglet n'existe pas)
    If Err <> 0 Then 'condition 2 : si une erreur a été générée
        Err.Clear 'efface l'erreur
        MsgBox "Le fichier ouvert n'est pas valide !" 'message
        ActiveWorkbook.Close SaveChanges:=False 'ferme le fichier
        Exit Sub 'sort de la procédure
    End If 'fin de la condition 2
Else 'sinon (condition 1)
    Exit Sub 'sort de la procédure
End If 'fin de la condition 1

'si tu veux effacer les anciennes données (enlève l'apostrophe des deux lignes en dessous et supprime les trois lignes plus bas)
'OD.Cells.ClearContents
'OS.Cells.Copy OD.Range("A1")

'si tu veux garder les anciennes données (supprime les lignes commentées du dessus)           - 1
Set DEST = OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(2, 0) '                       - 2
OS.Range("A1").CurrentRegion.Copy DEST '                                                      - 3

CS.Close SaveChanges:=False 'ferme le fichier sans enregister
End Sub
Le fichier :
 

Pièces jointes

Re : Copier-Coller des données d'un fichier different à l'aide d'une macro

Bonjour le fil, bonjour le forum,

J'ai encore beaucoup de progrès à faire !
Arf !!! moi aussi...

J'ai pas bien compris ta question... (format de mail ?).
Pour que les lignes de codes apparaissent tel que je l'ai fait, il faut aller en mode avancé en cliquant sur le bouton Aller en mode mode avancé (comme quoi il n'y a pas de hasard...). Là, tu sélectionnes le code et tu cliques sur le bouton # (balises CODE), ou tu cliques d'abord sur le bouton # et tu colles ton code entre les deux balises.
Par contre, dans ce format CODE plus de couleur possible autre que le noir...

 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
958
Réponses
2
Affichages
930
Retour