Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA collage spécial valeur

Vincent_38

XLDnaute Nouveau
Bonjour à tous,

J'ai élaboré une petite macro de consolidation qui me permet d'aller chercher des informations dans une multitude de fichiers et de les coller dans une base commune.

Je n'ai absolument aucune connaissance en VBA et le code qui suit est du bricolage.

Je cherche donc, au lieu d'un simple copier/coller, faire un collage des valeurs... et je n'y arrive pas pour le moment.

Le code :
Code:
Sub macro_exemple_2()
'
    
ReadOnly = True 'active le mode lecture seule
    Workbooks.Open Filename:= _
        "ADRESSE\AA 2013.xlsm" 'ouvre le fichier AA
        
Worksheets("base N").Unprotect ("XX") 'enlève le MDP

    
 Dim Pop As CommandBarPopup
    Worksheets("base N").Activate
    Set Pop = CommandBars("Data").Controls("&Filtrer")
    If Pop.Controls("&Afficher tout").Enabled = True Then
        Worksheets("base N").ShowAllData
    End If 'enlève les filtres en forçant l'affichage de toutes les données
    
Dim source As Workbook, destin As Workbook, derlig As Long
Set source = Workbooks("AA 2013") 'définition du classeur source
Set destin = Workbooks("BB consolidation") 'définition du classeur cible
source.Activate
derlig = source.Sheets("base N").[A65536].End(xlUp).Row 'sélectionner toutes les lignes de la base source à partir de la dernière ligne non vide
source.Sheets("base N").Range("A2:W" & derlig).Copy destin.Sheets("DR base N").Range("A65536").End(xlUp).Offset(1, 0) 'les colle dans la première ligne vide du fichier destinataire



Worksheets("base N").Protect ("XX") 'remet le MDP

Workbooks("AA 2013").Close False
Application.DisplayAlerts = False 'quitte le classe source et empêche la sauvegarde ainsi que les messages d'erreur


'

End Sub

J'ai essayé de spécificer des conditions après le .copy, comme cela :
Code:
With Sheets("base").Range("b65536").End(xlUp)
            .PasteSpecial Paste:=xlPasteValues
            .Application.CutCopyMode = False
        End With

mais cela ne marche pas. Je suis tout à fait conscient qu'il faudra peut être changer la fonction, celle que j'utilise n'est sûrement pas la plus adaptée.

Merci d'avance pour vos lumières.
 

Vincent_38

XLDnaute Nouveau
Re : VBA collage spécial valeur

Bonjour Titi, le forum,

Je veux copier les valeurs de toutes les lignes jusqu'à la 2ème non comprise à partir de la dernière ligne non vide et les coller (collage spécial valeur) dans la première ligne vide d'un second fichier.

J'ai mis une pièce-jointe, très simple, qui reprend la structure des fichiers source, et j'espère que mes explications sont claires.
 

Pièces jointes

  • Exemple_collage_special.xlsx
    8.8 KB · Affichages: 62

titiborregan5

XLDnaute Accro
Re : VBA collage spécial valeur

Pas sûr d'avoir tout compris mais essaie comme ça
Code:
For i = 4 To Range("a65000").End(xlUp).Row
Rows(i).Copy
Sheets(2).Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)
Next
 

Discussions similaires

Réponses
7
Affichages
337
Réponses
7
Affichages
443
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…