Comfortably_Numb
XLDnaute Junior
Bonjour à tous,
Je rencontre une point gênant avec ma macro. Elle consolide des fichiers se trouvant dans un dossier spécifique, jusque là tout va bien.
Là où ça commence à se compliquer, c'est que dans les tableaux qu'elle consolide il y a des remplissages, des bordures éventuellement qui ne m'intéressent pas.
Je suis parvenu à lui faire supprimer cela.
En revanche, je rencontre un dernier problème, lié au fait que dans les tableaux d'origine il y a des recherches V.
Je souhaiterais que la macro ne copie-colle que les valeurs des cellules.
J'ai consulté des forums, mais le
ne semble pas correspondre car ça bug.
Quelqu'un a-t-il une solution ?
Voici le code en question (le collage se fait ligne 78) :
Merci pour votre aide !
Je rencontre une point gênant avec ma macro. Elle consolide des fichiers se trouvant dans un dossier spécifique, jusque là tout va bien.
Là où ça commence à se compliquer, c'est que dans les tableaux qu'elle consolide il y a des remplissages, des bordures éventuellement qui ne m'intéressent pas.
Je suis parvenu à lui faire supprimer cela.
En revanche, je rencontre un dernier problème, lié au fait que dans les tableaux d'origine il y a des recherches V.
Je souhaiterais que la macro ne copie-colle que les valeurs des cellules.
J'ai consulté des forums, mais le
VB:
PasteSpecial Paste:=xlValues
Quelqu'un a-t-il une solution ?
Voici le code en question (le collage se fait ligne 78) :
VB:
Option Explicit
' Déclaration des variables
Dim NomClasseur As String
Dim LigneTotal As Integer
Dim DerLigne As Integer
' Procédure permettant la consolidation de plusieurs classeurs
Sub Consolider()
' On désactive le raffraichissement de l'écran
Application.ScreenUpdating = False
' Etape 1 : Création des en-têtes
' On réinitialise le fichier synthèse
Columns("A:AG").Clear
Range("A1").Value = "UE"
Range("B1").Value = "Site"
Range("C1").Value = "Type"
Range("D1").Value = "N°"
Range("E1").Value = "Bailleur / Preneur"
Range("F1").Value = "Libellé affaire"
Range("G1").Value = "Client"
Range("H1").Value = "Emetteur de la demande"
Range("I1").Value = "Interlocuteur NPM"
Range("J1").Value = "Date de demande à l'étude"
Range("K1").Value = "Etape"
Range("L1").Value = "Commentaire"
Range("M1").Value = "Date réception devis"
Range("N1").Value = "Nbre de jours dépassés"
Range("O1").Value = "Délai Ok/Hors délai"
Range("P1").Value = "Montant devis retenu"
Range("Q1").Value = "Origine budget"
Range("R1").Value = "Imputation"
Range("S1").Value = "Libellé racine OI"
Range("T1").Value = "Date accord budget"
Range("U1").Value = "Groupe acheteur"
Range("V1").Value = "N° DA"
Range("W1").Value = "Montant Da saisie auto"
Range("X1").Value = "Date validation DA"
Range("Y1").Value = "N° Commande"
Range("Z1").Value = "Date envoi (MGA) commande"
Range("AA1").Value = "N° devis fournisseur"
Range("AB1").Value = "Date livraison"
Range("AC1").Value = "Date du PV de réception"
Range("AD1").Value = "Date clôture de la demande"
Range("AE1").Value = "N° du 101 PGI"
Range("AF1").Value = "Statut"
' Etape 2 : Parcourir les fichiers du dossier préféfini
ChDir "C:\Users\jdarras\Desktop\TDB"
' On cherche le premier classeur dans le dossier
NomClasseur = Dir("C:\Users\jdarras\Desktop\TDB\*.*")
' On boucle pour chercher tous les classeurs Excel
While Len(NomClasseur) > 0
Application.DisplayAlerts = False ' Désactive les boîtes de dialogue Excel
Workbooks.Open NomClasseur ' Ouverture du classeur
With ActiveSheet.Cells ' On affiche les colonnes éventuellement masquées
.EntireColumn.Hidden = False
End With
LigneTotal = ActiveSheet.UsedRange.Rows.Count ' On récupère le nombre de ligne de données
Range("A3:AF" & LigneTotal).Copy ' On copie toutes les données de la feuille active
Workbooks("Classeur1.xlsm").Activate ' On revient sur le classeur de synthèse
DerLigne = ActiveSheet.UsedRange.Rows.Count + 1 ' On recherche la dernière ligne vide de la feuille active
Range("A" & DerLigne).Select ' On se positionne sur la dernière ligne vide de la feuille
ActiveSheet.Paste ' On colle les données
Range("AG" & DerLigne & ":AG" & ActiveSheet.UsedRange.Rows.Count) = NomClasseur ' On colle le nom du classeur sur la colonne AG
Workbooks(NomClasseur).Close ' Fermeture du classeur ouvert
NomClasseur = Dir ' On passe au prochain classeur
Wend
' Etape 3 : Modifier les mises en forme
Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete ' On efface les lignes dont la première cellule est vide
Range("A:AF").ClearFormats ' On supprime les formats
Range("J:J,M:M,T:T,X:X,Z:Z,AB:AB,AC:AC,AD:AD").Select
Selection.NumberFormat = "m/d/yyyy" ' On remet les formats date aux bonnes colonnes
Columns("A:AF").ColumnWidth = 10.27 ' On définit la largeur des colonnes
' Etape 4 : Supprimer l'extension des fichiers
Columns("AG").Replace ".xlsm", "" ' On retire l'extension des fichiers .xlsm en colonne AG
Columns("AG").Replace ".xlsx", "" ' On retire l'extension des fichiers .xlsx en colonne AG
MsgBox "La consolidation est terminée."
' On réactive le raffraichissement de l'écran
Application.ScreenUpdating = True
End Sub
Merci pour votre aide !