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 :
J'ai essayé de spécificer des conditions après le .copy, comme cela :
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.
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.