copie speciale valeur cellules par vba

beann

XLDnaute Nouveau
bonjour, on m'a aidé à developper une macro pour importer des données de classeurs vers un autre. ci-dessous le code:

Code:
Private Sub CommandButton2_Click()
Dim wbk As Workbook, awbk As Workbook
Dim wsh As Worksheet
Dim Fich As String
Dim Ligne As Double
 
Application.ScreenUpdating = False
Set awbk = ThisWorkbook
Set wsh = awbk.Sheets("Donnees regroupees")
 
Fich = Dir("C:\Users\M\Documents\*.xls")

Do While Fich <> ""
    With wsh
        Ligne = .Range("A65536").End(xlUp).Row + 1
        Set wbk = Workbooks.Open("C:\Users\M\Documents\Fla\" & Fich)
        wbk.Sheets("Decompte temps").Range("listeplagesource").Copy .Cells(Ligne, 1)
    
    End With
    wbk.Close False
    Fich = Dir
    Set wbk = Nothing
Loop
Set wsh = Nothing
Set awbk = Nothing
Application.ScreenUpdating = True
End Sub


J'aimerais remplacer cette ligne ....

Code:
wbk.Sheets("Decompte temps").Range("listeplagesource").Copy .Cells(Ligne, 1)


.... pour avoir un collage spécial des valeurs uniquement des cellules et non pas comme elles sont dans les classeurs d'origine avec leur formule, etc. Je suppose qu'il faut utiliser la commande Pastespecial mais je ne sais pas comment faire. Je ne suis pas un grand expert vba.

Merci par avance pour votre aide.
 

beann

XLDnaute Nouveau
Re : copie speciale valeur cellules par vba

J'obtiens bien un code du type
Code:
        Range("cellules à nommer").Select
        Selection.Copy
        Range("cellules où coller").Select     
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

mais si je l'adapte à mon code en inscrivant...

Code:
Private Sub CommandButton2_Click()
Dim wbk As Workbook, awbk As Workbook
Dim wsh As Worksheet
Dim Fich As String
Dim Ligne As Double
 
Application.ScreenUpdating = False
Set awbk = ThisWorkbook
Set wsh = awbk.Sheets("Donnees regroupees")
 
Fich = Dir("C:\Users\M\Documents\*.xls")

Do While Fich <> ""
    With wsh
        Ligne = .Range("A65536").End(xlUp).Row + 1
        Set wbk = Workbooks.Open("C:\Users\M\Documents\Fla\" & Fich)
        wbk.Sheets("Decompte temps").Range("listeplagesource").Select
        Selection.Copy
        Range("A1:A65536").Select     
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   
    End With
    wbk.Close False
    Fich = Dir
    Set wbk = Nothing
Loop
Set wsh = Nothing
Set awbk = Nothing
Application.ScreenUpdating = True
End Sub

...ca fonctionne pas. erreur d'écriture
 
G

Guest

Guest
Re : copie speciale valeur cellules par vba

Bonjour le fil,

Essaie ceci. Cela devrait copié les valeurs à partir de la première cellule vide de Wsh colonne A (Si c'est bien ce que tu veux comme je le crois)
Code:
 '......
 With wsh
        Set wbk = Workbooks.Open("C:\Users\M\Documents\Fla\" & Fich)
        wbk.Sheets("Decompte temps").Range("listeplagesource").Copy
        .Range("A65536").End(xlUp).Offset(1).PasteSpecial _
                    Paste:=xlPasteValues, _
                    Operation:=xlNone, _
                    SkipBlanks:=False, _
                    Transpose:=False
 
    End With
.....

A+
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
2
Affichages
176

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha