Copier Coller en valeurs entre fichiers sans .select

Résolu
curiosity42 Messages postés 3 Statut Membre -  
curiosity42 Messages postés 3 Statut Membre -
Bonjour à tous,

Voilà je suis depuis plusieurs semaines sur l'automatisation d'un fichier excel.
J'ai bien galéré et finalement je m'en suis sorti pour pas mal de choses.
Mais là je bloque, j'arrive à copier coller des données de plusieurs fichiers sur un fichier récap (2 fichiers dans mon exemple). Mais ce que je veux c'est copier en valeur et non pas les formules. J'ai essayé de mettre du .Sheets("...").range("...").select / Selection.Copy / Puis pasteSpecial ....

Mais je n'y arrive pas avec cette syntaxe du coup j'utilise ça (il est pas magnifique mon code mais je suis débutant et ça marche comme ça :p) :

Dim monclasseur As Workbook


 
'désactivation mode "lecture seule"
SetAttr "C:\Users\Curiosity\Documents\SuiviHeures\Synthese\FichierSynthese.xlsm", vbNormal


'ouverture classeur
Set monclasseur = Workbooks.Open("C:\Users\Curiosity\Documents\SuiviHeures\Synthese\FichierSynthese.xlsm")

If ThisWorkbook.Sheets("FicheTemps").Range("B3") = "DUPONT" Then
ThisWorkbook.Sheets("Total").Rows("1:16").Copy monclasseur.Sheets("Recap").Range("A1")

Else

If ThisWorkbook.Sheets("FicheTemps").Range("B3") = "DURAND" Then
ThisWorkbook.Sheets("Total").Rows("1:16").Copy monclasseur.Sheets("AMEG").Range("A18")

End If
End If

'fermeture et sauvegarde du classeur
monclasseur.Close True
ThisWorkbook.Close True 'Pour qu'ils ne puissent pas le modifier. En plus on met un mdp sur le dossiers des fichiers arrivant

End Sub


Donc je résume, j'ai besoin de faire exactement ça, mais de coller en valeurs.

Merci :)

1 réponse

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonsoir Curiosity, bonsoir le forum,

    Essaie comme ça :

    Sub Macro1()
    Dim monclasseur As Workbook
    
    'désactivation mode "lecture seule"
    SetAttr "C:\Users\Curiosity\Documents\SuiviHeures\Synthese\FichierSynthese.xlsm", vbNormal
    'ouverture classeur
    Set monclasseur = Workbooks.Open("C:\Users\Curiosity\Documents\SuiviHeures\Synthese\FichierSynthese.xlsm")
    If ThisWorkbook.Sheets("FicheTemps").Range("B3") = "DUPONT" Then
        ThisWorkbook.Sheets("Total").Rows("1:16").Copy
        monclasseur.Sheets("Recap").Range("A1").PasteSpecial (xlPasteValues)
    Else
        If ThisWorkbook.Sheets("FicheTemps").Range("B3") = "DURAND" Then
            ThisWorkbook.Sheets("Total").Rows("1:16").Copy
            monclasseur.Sheets("AMEG").Range("A18").PasteSpecial (xlPasteValues)
        End If
    End If
    Application.CutCopyMode = False
    'fermeture et sauvegarde du classeur
    monclasseur.Close True
    ThisWorkbook.Close True 'Pour qu'ils ne puissent pas le modifier. En plus on met un mdp sur le dossiers des fichiers arrivant
    End Sub

    0
    1. curiosity42 Messages postés 3 Statut Membre
       
      Super ça marche ! Merci !
      0