Bonjour à tous et à toutes
je déprime devant un code erreur bloc if sans end if du code ci-dessous.
Je suis loin d'un expert dans le langage informatique.
Si une personne pouvait me dépanner,
merci par avance
Sub CreationTCSELF()
Application.DisplayAlerts = False
With ActiveSheet.PivotTables("TC").PivotFields("L_PLAT")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("TC").AddDataField ActiveSheet. _
PivotTables("TC").PivotFields("C_PLAT"), _
"Somme de C_PLAT", xlSum
With ActiveSheet.PivotTables("TC").PivotFields( _
"Somme de C_PLAT")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_MODE_PREP")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_ALLERGENE")
.Orientation = xlRowField
.Position = 4
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_FAMILLE")
.Orientation = xlRowField
.Position = 5
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_SOUS_FAMILLE")
.Orientation = xlRowField
.Position = 6
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_MODE_PREP")
.PivotItems("SANS SEL").Visible = False
.PivotItems("SANS SEL AVEC GRAISSE").Visible = False
.PivotItems("SANS SEL SANS GRAISSE").Visible = False
.PivotItems("SALE SANS GRAISSE").Visible = False
.PivotItems("SANS GRAISSE").Visible = False
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_SOUS_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
'suppression des lignes en tirets
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("---").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("-----------------------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems(" - - -").Visible = False
Range("D2").Select
ActiveSheet.PivotTables("TC").PivotFields("L_ALLERGENE").PivotItems( _
"Anhydride sulfureux et sulfites").Position = 14
Dim fin, x As Long
fin = Range("c1").End(xlDown).Row
'Stop
' pour effectuer une boucle
For x = 1 To fin
'pour sélectionner une cellule
Cells(x, 1).Select
'pour sélectionner une plage de cellule
'Range(Cells(x, 1), Cells(x + 1, 2)).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
'stop
Cells(x, 2).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
With ActiveSheet.PivotTables("TC").PivotFields("L_PLAT")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("TC").AddDataField ActiveSheet. _
PivotTables("TC").PivotFields("C_PLAT"), _
"Somme de C_PLAT", xlSum
With ActiveSheet.PivotTables("TC").PivotFields( _
"Somme de C_PLAT")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_MODE_PREP")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_ALLERGENE")
.Orientation = xlRowField
.Position = 4
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_FAMILLE")
.Orientation = xlRowField
.Position = 5
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_SOUS_FAMILLE")
.Orientation = xlRowField
.Position = 6
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_MODE_PREP")
.PivotItems("SANS SEL").Visible = False
.PivotItems("SANS SEL AVEC GRAISSE").Visible = False
.PivotItems("SANS SEL SANS GRAISSE").Visible = False
.PivotItems("SALE SANS GRAISSE").Visible = False
.PivotItems("SANS GRAISSE").Visible = False
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_SOUS_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
'suppression des lignes en tirets
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("---").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("-----------------------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems(" - - -").Visible = False
Range("D2").Select
ActiveSheet.PivotTables("TC").PivotFields("L_ALLERGENE").PivotItems( _
"Anhydride sulfureux et sulfites").Position = 14
Dim fin, x As Long
fin = Range("c1").End(xlDown).Row
'Stop
' pour effectuer une boucle
For x = 1 To fin
'pour sélectionner une cellule
Cells(x, 1).Select
'pour sélectionner une plage de cellule
'Range(Cells(x, 1), Cells(x + 1, 2)).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
'stop
Cells(x, 2).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
merci d'utiliser l'icone <> pour laisser les codes lisibles avec leur indentation.
Si tu indentes correctement ton code tes erreurs de ce type te sauteront aux yeux.
eric
mais il persiste avec la modif
Sub CreationTCSELF()
Application.DisplayAlerts = False
On Error Resume Next
Sheets("TCSELF").Delete
ActiveWorkbook.Worksheets("TableAllergene").QueryTables(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TableAllergene").QueryTables(1).Sort.SortFields.Add Key:=Range("B:B"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("TableAllergene").QueryTables(1).Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="TableAllergene!a:f").CreatePivotTable TableDestination:="", TableName:="TC"
With ActiveSheet.PivotTables("TC").PivotFields("L_PLAT")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("TC").AddDataField ActiveSheet. _
PivotTables("TC").PivotFields("C_PLAT"), _
"Somme de C_PLAT", xlSum
With ActiveSheet.PivotTables("TC").PivotFields( _
"Somme de C_PLAT")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_MODE_PREP")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_ALLERGENE")
.Orientation = xlRowField
.Position = 4
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_FAMILLE")
.Orientation = xlRowField
.Position = 5
End With
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_SOUS_FAMILLE")
.Orientation = xlRowField
.Position = 6
End With
ActiveSheet.PivotTables("TC").AddDataField ActiveSheet.PivotTables("TC").PivotFields("L_ALLERGENE"), "Nombre de L_ALLERGENE", xlCount
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("TC").PivotFields("C_PLAT").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("TC").PivotFields("L_MODE_PREP").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("TC").PivotFields("L_ALLERGENE").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("TC").PivotFields("L_FAMILLE").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("TC").PivotFields("L_SOUS_FAMILLE").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False)
With ActiveSheet.PivotTables("TC").PivotFields( _
"L_ALLERGENE")
.Orientation = xlColumnField
.Position = 1
End With
'suppression sous famille et famille
With ActiveSheet.PivotTables("TC").PivotFields("L_FAMILLE")
.PivotItems("EN ATTENTE MENUS").Visible = False
.PivotItems("EN ATTENTE SUPP").Visible = False
.PivotItems("ENTERAL").Visible = False
.PivotItems("PLATEAU").Visible = False
.PivotItems("BOISSON").Visible = False
.PivotItems("PRODUIT DIETETIQUE").Visible = False
.PivotItems("(blank)").Visible = False
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_SOUS_FAMILLE")
.PivotItems("DESSERT ENRICHI").Visible = False
.PivotItems("DESSERT HA").Visible = False
.PivotItems("ENTREE HA").Visible = False
.PivotItems("LEGUME HA").Visible = False
.PivotItems("POTAGE ENRICHI").Visible = False
.PivotItems("PRODUIT DIET").Visible = False
.PivotItems("VIANDE HA 30").Visible = False
.PivotItems("VIANDE HA ADULTES").Visible = False
.PivotItems("VIANDE HACHEE 30G").Visible = False
.PivotItems("VIANDE MIXEE 20G").Visible = False
.PivotItems("VIANDE MIXEE 30G").Visible = False
.PivotItems("BOISSON ALCOOLISEE").Visible = False
.PivotItems("BOISSON SUCREE").Visible = False
.PivotItems("CAFE").Visible = False
.PivotItems("CCEG").Visible = False
.PivotItems("MANGER MAINS").Visible = False
.PivotItems("VIANDE HACHE MIXE").Visible = False
.PivotItems("ENTREE MIXEE IAA").Visible = False
.PivotItems("LEGUME VERT NATURE").Visible = False
.PivotItems("VIANDE HAC MIX IAA").Visible = False
.PivotItems("PLAT COMPLET IAA").Visible = False
.PivotItems("LEGUME VERT NATURE").Visible = False
.PivotItems("MIXE LEGUME VERT").Visible = False
.PivotItems("PLAT COMPLET MIXE").Visible = False
.PivotItems("PATISSERIE S/GLUTEN").Visible = False
.PivotItems("GATEAUX-CEREALES-FARINE").Visible = False
.PivotItems("PLAT COMPLET MIXE IAA").Visible = False
.PivotItems("P.POT VIANDE LEGUMES").Visible = False
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_MODE_PREP")
.PivotItems("SANS SEL").Visible = False
.PivotItems("SANS SEL AVEC GRAISSE").Visible = False
.PivotItems("SANS SEL SANS GRAISSE").Visible = False
.PivotItems("SALE SANS GRAISSE").Visible = False
.PivotItems("SANS GRAISSE").Visible = False
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("TC").PivotFields("L_SOUS_FAMILLE")
.Orientation = xlPageField
.Position = 1
End With
'suppression des lignes en tirets
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("---").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("-----------------------").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ ").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems("_ _ _ _ _ _").Visible = False
On Error Resume Next
ActiveSheet.PivotTables("TC").PivotFields("L_PLAT").PivotItems(" - - -").Visible = False
Range("D2").Select
ActiveSheet.PivotTables("TC").PivotFields("L_ALLERGENE").PivotItems( _
"Anhydride sulfureux et sulfites").Position = 14
'mise en page
Rows("5:5").RowHeight = 130
Range("D5:R5").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("D:R").Select
Columns("D:R").EntireColumn.AutoFit
Selection.ColumnWidth = 2.29
Selection.ColumnWidth = 3
Range("A4").Select
Sheets("Feuil1").Select
Sheets("Feuil1").Name = "TC"
Range("A2").Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
'suppression ligne 1
Rows("1:4").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
'boucle
Dim fin, x As Long
fin = Range("c1").End(xlDown).Row
'Stop
' pour effectuer une boucle
For x = 1 To fin
'pour sélectionner une cellule
Cells(x, 1).Select
'pour sélectionner une plage de cellule
'Range(Cells(x, 1), Cells(x + 1, 2)).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
'stop
Cells(x, 2).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
Sheets("TC").Name = "TCSELF"
Application.DisplayAlerts = True
Range(a1).Select
'Stop"
End Sub
Il faut que vous pensiez à fermer toutes vos boucles / Conditions.
ex:
Ce code affichera 10 message box, avec la valeur de I.
Simple Question,
Ce code vous l'avez fait vous même ou il était déjà existant et vous essayez de le retravailler?