Microsoft 365 Remplacer Copy par Pastspecial

Free_doo

XLDnaute Nouveau
Bonjour,
je suis nouveau sur le site (bien que je chine sur ce forum depuis des années, on peux dire que tout ce que je sais c'est ici que je l'ai appris)
cela fait des années que je bricole en VBA (grâce a vous) mais la je n'y arrive pas dans ce cas, si quelqu’un veux bien m'aider ?
voila !
j'ai plusieurs fichier excel de Projet tous basé sur le même format, il y'a dedans des zone (nommé) que je souhaite récupérer sur un seul et même
fichier Excel (maître). j'ai bricolé une macro qui me demande quel fichier je veux importer et qui récupérer les différentes zone a importer
seulement elle me copie les formules et je souhaiterais qu'elle me copie les formats et valeurs.

je n'arrive pas a trouver un moyen de remplacer le .Copy par .pastspecial, si quelqu'un peu m'aider ?

vous trouverez ci-dessous mon code
je vous remercie par avance


VB:
Sub Import_donné_depuis_autre_fichier()
    Dim wkbCrntWorkBook As Workbook
    Dim wkbSourceBook As Workbook
    Dim rngSourceRange As Range
    Dim rngDestination As Range
    Set wkbCrntWorkBook = ActiveWorkbook
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Clear
        .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa"
        .AllowMultiSelect = False
        .Show
    
        If .SelectedItems.Count > 0 Then
            Workbooks.Open .SelectedItems(1)
            Set wkbSourceBook = ActiveWorkbook
            Set rngSourceRange = [zone_nom]
            wkbCrntWorkBook.Activate
            Set rngDestination = Sheets("Planning Gen").Cells(65535, 1).End(xlUp)(6)
            rngSourceRange.Copy rngDestination
            
            wkbSourceBook.Close False
        End If
    End With
End Sub
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

mais comme tu veux les formats aussi il vaut mieux conserver ce que tu as, et finir avec :
VB:
rngDestination.Value = rngDestination.Value
pour te débarrasser des formules.
En ayant mis sa taille à toute la plage concernée auparavant.
eric
 

Free_doo

XLDnaute Nouveau
Bonjour à tous,
merci pour vos réponses.

Danielco ta solution marche parfaitement, j'ai simplement dupliqué la ligne pour obtenir ce que je souhaitais

VB:
rngSourceRange.Copy
            rngDestination.PasteSpecial xlPasteValues
            rngDestination.PasteSpecial xlPasteFormats

Eriiiic, je suis désolé mais je n'ai pas réussit a faire marcher ta solution... pas de bug mais aucune action ?!?!?
j'ai dû mal m'y prendre

Merci à tous en tout cas

Cordialement
 

Discussions similaires