Message d erreur macro execution 5

bonjour à tous, j' ai tant bien que mal réussi à faire une macro pour un TCD, cela fonction avec le 1er tcd mais pas pour le second tableau qui est identique sauf au niveau des lignes le 1 er en a 853 et le second 576 , j'ai modifié cette donnée mais j'ai comme message erreur exécution 5

je vous joint le message :

merci pour votre aide

Range("B6").Select

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Sheets.Add

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

"Détail Facturation (Colis)!R6C2:R853C21", Version:=xlPivotTableVersion10). _

CreatePivotTable TableDestination:="Feuil2!R3C1", TableName:= _

"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10

Sheets("Feuil2").Select

Cells(3, 1).Select

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _

"Nom de Recherche du client")

.Orientation = xlRowField

.Position = 1

End With

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _

"Nom de Recherche du client")

.PivotItems("(blank)").Visible = False

End With

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dept.")

.Orientation = xlRowField

.Position = 2

End With

Range("A6").Select

ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _

"Nom de Recherche du client").Subtotals = Array(False, False, False, False, False, _

False, False, False, False, False, False, False)

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _

"Date d'expédition")

.Orientation = xlColumnField

.Position = 1

End With

ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _

PivotTables("Tableau croisé dynamique2").PivotFields( _

"Qtés Sortie du stock en Colis"), "Nombre de Qtés Sortie du stock en Colis", _

xlCount

Range("A3").Select

With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _

"Nombre de Qtés Sortie du stock en Colis")

.Caption = "Somme de Qtés Sortie du stock en Colis"

.Function = xlSum

End With

ActiveWindow.ScrollColumn = 21

Range("AC5").Select

ActiveCell.FormulaR1C1 = "=COUNTA(RC[-26]:RC[-2])"

Range("AC5").Select

Selection.AutoFill Destination:=Range("AC5:AC54"), Type:=xlFillDefault

Range("AC5:AC54").Select

End Sub

Bonjour,

Merci de joindre un fichier à ta demande.

Cdlt.

Bonjour Jean-Eric,

je te met un autre fichier mais le souci est le même au niveau de la macro .

cdlt.

7essai-tcd.zip (12.90 Ko)

Re,

Voici un exemple de construction d'un TCD en VBA.

Il serait judicieux de mettre les données sous forme de tableau, de renommer les en-têtes de colonnes (pas de noms à rallonge et explicites). Je ne pose pas la question pour le format de fichier en xls.

A te relire.

Cdlt.

super Jean-Eric si je peux encore te demander quelque chose , je t'ai mis un deuxième onglet mais qui est un peux différent au niveau des colonnes et sous totaux .

il me faudrait dans l extraction en + la colonne dept après le nom du client et en dernière colonne la somme nbval des nombres de commandes.

Merci d'avance pour ton aide .

Re,

Tes données ne se prêtent pas réellement pour créer des TCDs!...

Et je ne parle pas des cellules fusionnées.

Une proposition à étudier.

ALT F8, exécuter Create_PT_2

Cdlt.

Bonjour Jean-Eric, je sais mais je n'ai pas le choix .merci pour ta macro.

Bonjour Jean -Eric, ta macro fonctionne bien, mais peux tu m expliquer comment la lancer via mes autres fichiers excel, car en Faisant ALT F8 via d'autres fichier elle n'apparait pas .

Merci d'avance.

Jean -Eric, j'ai réussi à mettre le module mais j'ai message erreur 9

Public Sub Create_PT_2()

Dim wb As Workbook

Dim wsData As Worksheet, wsPT As Worksheet

Dim tbl As Variant, Arr() As Variant

Dim lo As ListObject

Dim PTCache As PivotCache, PT As PivotTable

Dim pf As PivotField

Dim lastCol As Long, lastRow As Long, lRow As Long

Dim I As Long, k As Long

With Application

.DisplayAlerts = False

.ScreenUpdating = False

End With

Set wb = ThisWorkbook

Set wsData = wb.Worksheets("Feuil1")

lRow = 6: k = 1

With wsData

lastCol = .Cells(6, .Columns.Count).End(xlToLeft).Column

lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row

tbl = .Cells(7, 2).Resize(lastRow - lRow, lastCol).Value

End With

For I = LBound(tbl) To UBound(tbl)

If tbl(I, 4) <> "" Then

ReDim Preserve Arr(1 To UBound(tbl), 4)

Arr(k, 0) = tbl(I, 1)

Arr(k, 1) = CDate(tbl(I, 3))

Arr(k, 2) = tbl(I, 7)

Arr(k, 3) = tbl(I, 15)

k = k + 1

End If

Next I

On Error Resume Next

wb.Worksheets("TCD 2").Delete

On Error GoTo 0

Application.DisplayAlerts = True

Set wsPT = wb.Worksheets.Add

wsPT.Name = "TCD 2"

With wsPT

.Cells(1).Resize(, 4).Value = Array("Dépt.", "Date", "Client", "Quantité")

.Cells(2, 1).Resize(UBound(Arr, 1), UBound(Arr, 2)).Value = Arr

Set lo = .ListObjects.Add(xlSrcRange, .Cells(1).CurrentRegion, , xlYes)

With lo

.Name = "tableau1"

.TableStyle = "TableStyleLight11"

End With

End With

Set PTCache = wb.PivotCaches.Create(xlDatabase, lo.Range)

Set PT = PTCache.CreatePivotTable(wsPT.Cells(1, 6), "PT_2")

With PT

.ManualUpdate = True

.AddFields RowFields:=Array("Dépt.", "Client"), ColumnFields:="Date"

With .PivotFields("Quantité")

.Orientation = xlDataField

.Function = xlCount

.NumberFormat = "#,##0;[Red]-#,##0;"

.Caption = "NB quantité"

End With

.RowAxisLayout xlTabularRow

.TableStyle2 = "PivotStyleMedium6"

For Each pf In .RowFields

pf.Subtotals(1) = True

pf.Subtotals(1) = False

Next pf

.ManualUpdate = False

End With

End Sub

Bonjour,

Quelle ligne de la procédure pose problème (ligne surlignée en jaune)?

Cdlt.

Celle-ci:

Set wsData = wb.Worksheets("Feuil1")

Re,

Ton classeur comporte t'il une feuille (un onglet) nommée Feuil1?

Cdlt.

Non, c'est cela le souci et en mettant une feuille 1

J'ai ce message

tbl = .Cells(7, 2).Resize(lastRow - lRow, lastCol).Value

Re,

Peux-tu envoyer ton nouveau fichier?

Cdlt.

Je t'ai extrait un autre tableau sous la même forme souhaité pour un TCD, j'ai juste changer le nom du client et article .

Sinon l extraction est toujours la même sauf au niveau des lignes qui sont variable .

Merci encore

cdt

Re,

Ton fichier en retour.

Il va falloir que tu essaies de comprendre les procédures qui te sont proposées.

Cdlt.

Merci Jean -Eric, je reconnais que j'ai beaucoup de mal avec les macros.

cdt

Bonjour Jean-Eric, merci encore pour la macro.

Pourrais tu me dire comment ouvrir ta macro via un autre fichier Excel, dois je l'enregistrer quelques part et surtout comment , car pour le moment j'écrase chaque semaine mes données et réactualise le tcb .

Merci pour ton aide.

Bonjour,

Peux-tu te renseigner (via le web) sur le classeur de macros personnelles (Personal.xlsb)?

Cdlt.

Je crois que oui .

Rechercher des sujets similaires à "message erreur macro execution"