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.