Combinaison de macro

Bonjour à tous,

Je fais un gros traitement de données. j'utilise 7 classeurs différents.

Pouvez-vous m'aider? Ma macro ne fonctionne pas, en effet lorsque j'appuie sur le bouton du classeur : "Export Analyse des délais new 2.0", je peux rentrer les dates mais après il bloque. Pourquoi? Pouvez-vous me dire ce qui ne va pas et/ou modifier? Si possible corriger les erreurs aussi.

Merci d'avance !! <3

J'ai 7 Classeurs en tout:

4 où je prélève mes données. "Export Analyse delais Purell fournisseur" / ""Export Analyse delais Bic fournisseur" / "Export Analyse delais Bic client"/ "Export Analyse delais Purell client"

1 où je fais le filtre de mes 4 classeurs. "Excel pour traitement OTD"

1 où je fais toute mon analyse statistique. "Export Analyse des délais new 2.0"

1 où se trouve la macro avec le bouton pour faire un filtrage. (James du forum me la fait) "Export analyse délais V3"

Le plan est :

  • J'ouvre "Export Analyse des délais new 2.0"
  • J'appuie sur le petit bouton magique "Filtrer" mais moi je veux qu'il s'appelle "Analyse", je rentre l'année et le mois. (le bouton et la macro se trouve dans "Export analyse délais V3")
  • Puis la il commence à traiter les infos.
  • Il ouvre en 1 er : "Export Analyse delais Purell client". Il sélectionne les colonnes de A à K A:K il les copies
  • Il colle ces colonnes dans la feuille "Purell Client" du classeur "Excel pour traitement OTD"

Maintenant 2 options soit il fait le filtre maintenant soit après que j'ai prélevé toutes les données, le plus simple a codé comme vous voulez.

  • Il ouvre en 2 eme : "Export Analyse delais Purell client". Il sélectionne les colonnes de A à K A:K il les copies
  • Il colle ces colonnes dans la feuille "Purell Client" du classeur "Excel pour traitement OTD"
  • Il ouvre en 3 eme : "Export Analyse delais Purell fournisseur". Il sélectionne les colonnes de A à K A:K il les copies
  • Il colle ces colonnes dans la feuille "Purell Fournisseur" du classeur "Excel pour traitement OTD"
  • Il ouvre en 4 eme : "Export Analyse delais Bic fournisseur". Il sélectionne les colonnes de A à K A:K il les copies
  • Il colle ces colonnes dans la feuille "Bic Fournisseur" du classeur "Excel pour traitement OTD"

Il ferme les 4 classeurs de prélèvement de données sans les enregistrer.

Sur le classeur "Excel pour traitement OTD" il fait les filtres sur la colonne Délais sur les 4 feuilles. (selon la date qu'on a choisit au début)

Une fois que les filtres sont fait, il re sectionnelle les colonnes de A à K puis il les colles dans le derniers classeur "Export Analyse des délais new 2.0" au bon endroit.

C'est a dire: pour la feuille - "Purell Client" il les colle sur la feuille "Purell client"

  • "Bic Client" - > "Bic client"
  • "Bic Fournisseur" -> "Fournisseur Bic"
  • "Purell Fournisseur" -> "Fournisseur Purell"

Apres le traitement des données se fait tout seul c'est pas un soucis.

Je donne toute la macro que j'ai faite pour le moment, peut être qu'il y a juste un truc a résoudre mais sa ne fonctionne pas. :/

Merci d'avance <3

'Ici on appuie sur le bouton y'a 2 fenêtres qui apparaissent pour qu'on rentre le mois et l'année souhaité'
Private Sub Filtrer()
Dim ldateto As Long
Dim ldatefrom As Long
Dim LastRow As Long
Dim ThisMonth As Integer
Dim ThisYear As Integer

ThisYear = Application.InputBox("Saisir Année", "Saisir l'Année ...", Type:=1)
ThisMonth = Application.InputBox("Saisir Chiffre Mois", "Saisir le Chiffre du Mois ...", Type:=1)

ldatefrom = DateSerial(ThisYear, ThisMonth, 1)
ldateto = DateSerial(ThisYear, ThisMonth + 1, 0)

'Il commence à ouvrir les classeurs pour prélever les données'
Workbooks.Open Filename:= _
"C:\Users\stage\Desktop\Sauvegarde travail\Calcul OTD\Excel pour traitement OTD.xlsx"
Workbooks.Open Filename:= _
"C:\Users\stage\Desktop\Sauvegarde travail\Calcul OTD\Export Analyse delais Purell client.xls"
Columns("A:H").Select
Selection.Copy
Windows("Excel pour traitement OTD.xlsx").Activate
ActiveSheet.Paste
Windows( _
"Export Analyse delais Purell client.xls" _
).Activate
Application.CutCopyMode = False
Workbooks("Export Analyse delais Purell client").Close SaveChanges:=False
Sheets("Bic Client").Select

Workbooks.Open Filename:= _
"C:\Users\stage\Desktop\Sauvegarde travail\Calcul OTD\Export Analyse delais Bic client.xls"
Columns("A:H").Select
Selection.Copy
Windows("Excel pour traitement OTD.xlsx").Activate
ActiveSheet.Paste
Windows( _
"Export Analyse delais Bic client.xls" _
).Activate
Application.CutCopyMode = False
Workbooks("Export Analyse delais Bic client").Close SaveChanges:=False
Sheets("Bic Fournisseur").Select

Workbooks.Open Filename:= _
"C:\Users\stage\Desktop\Sauvegarde travail\Calcul OTD\Export Analyse delais Bic fournisseur.xls"
Columns("A:I").Select
Selection.Copy
Windows("Excel pour traitement OTD.xlsx").Activate
ActiveSheet.Paste
Windows( _
"Export Analyse delais Bic fournisseur" _
).Activate
Application.CutCopyMode = False
Workbooks("Export Analyse delais Bic fournisseur").Close SaveChanges:=False
Sheets("Purell Fournisseur").Select

Workbooks.Open Filename:= _
"C:\Users\stage\Desktop\Sauvegarde travail\Calcul OTD\Export Analyse delais Purell fournisseur.xls"
Columns("A:I").Select
Selection.Copy
Windows("Excel pour traitement OTD.xlsx").Activate
ActiveSheet.Paste
Windows( _
"Export Analyse delais Purell fournisseur" _
).Activate
Application.CutCopyMode = False
Workbooks("Export Analyse delais Purell fournisseur").Close SaveChanges:=False
Sheets("Purell Client").Select

'Ici il effectue le filtre et colle les colonnes sur le classeur voulu'

With Sheet1
.Range("C1").AutoFilter
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("$A$1:$I$" & LastRow)
.AutoFilter Field:=3, _
Criteria1:=">=" & ldatefrom, _
Operator:=xlAnd, _
Criteria2:="<=" & ldateto
End With
End With
Columns("A:I").Select
Selection.Copy
Windows("Export Analyse des délais new 2.0.xls").Activate
ActiveSheet.Paste

Windows("Excel pour traitement OTD.xlsx").Activate
Sheets("Bic Client").Select

With Sheet2
.Range("C1").AutoFilter
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("$A$1:$I$" & LastRow)
.AutoFilter Field:=3, _
Criteria1:=">=" & ldatefrom, _
Operator:=xlAnd, _
Criteria2:="<=" & ldateto
End With
End With

Columns("A:I").Select
Selection.Copy
Windows("Export Analyse des délais new 2.0.xls").Activate
ActiveSheet.Paste

Windows("Excel pour traitement OTD.xlsx").Activate
Sheets("Bic Fournisseur").Select

With Sheet3
.Range("C1").AutoFilter
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("$A$1:$I$" & LastRow)
.AutoFilter Field:=3, _
Criteria1:=">=" & ldatefrom, _
Operator:=xlAnd, _
Criteria2:="<=" & ldateto
End With
End With

Columns("A:I").Select
Selection.Copy
Windows("Export Analyse des délais new 2.0.xls").Activate
ActiveSheet.Paste

Windows("Excel pour traitement OTD.xlsx").Activate
Sheets("Purell Fournisseur").Select

With Sheet4
.Range("C1").AutoFilter
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("$A$1:$I$" & LastRow)
.AutoFilter Field:=3, _
Criteria1:=">=" & ldatefrom, _
Operator:=xlAnd, _
Criteria2:="<=" & ldateto
End With
End With

Columns("A:I").Select
Selection.Copy
Windows("Export Analyse des délais new 2.0.xls").Activate
ActiveSheet.Paste

End Sub

Si vous avez des optimisations ou des idées je suis preneur ! 8)

21analyser.zip (193.67 Ko)

Help please je suis complètement bloqué ...

Bonjour,

personnellement je suis en mode 'relâche' en ce moment sur excel donc je ne ferai pas.

Par contre ce n'est pas vendeur ton truc.

  • tu n'utilises pas la balise Code pour qu'il soit lisible et l'indentation conservée, personne n'a envie de lire ça
  • tu mets un .rar (payant que tout le monde n'a pas) au lieu d'un .zip
  • je n'ai pas trouvé la question (!?!)
eric

Bonjour, Merci je vais modifier ca.

Merci, c'est vrai que c'est plus agréable !

Rechercher des sujets similaires à "combinaison macro"