Microsoft 365 Remplacer Copy par Pastspecial

  • Initiateur de la discussion Initiateur de la discussion Free_doo
  • 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 !

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
 
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
 
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
 
- 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
951
Retour