Bloc if sans end if [Fermé]

Signaler
Messages postés
6
Date d'inscription
lundi 1 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2019
-
Messages postés
2612
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
15 juin 2021
-
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

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



Sheets("TC").Name = "TCSELF"

Application.DisplayAlerts = True
Range(a1).Select

'Stop"


End Sub

2 réponses

Messages postés
2612
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
15 juin 2021
1 550
Bonjour,

En effet, il manque bien un end if...

 Cells(x, 2).Select
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
Messages postés
2612
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
15 juin 2021
1 550
Vous avez celle ci également :
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
end if


Il faut que vous pensiez à fermer toutes vos boucles / Conditions.
Messages postés
6
Date d'inscription
lundi 1 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2019

il me marque du coup for sans next ?????
Messages postés
2612
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
15 juin 2021
1 550
Même principe... chaque For doit avoir un next...

ex:
For I=1 to 10
MsgBox(I)
Next


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?
Messages postés
6
Date d'inscription
lundi 1 septembre 2014
Statut
Membre
Dernière intervention
13 novembre 2019

il était existant j'ai fait une modification par moment il m'affiche un débogage ???? il s'agit d'un fichier d'allergène pour enfants
Messages postés
2612
Date d'inscription
jeudi 2 juillet 2015
Statut
Membre
Dernière intervention
15 juin 2021
1 550
Suivant la modif que vous avez faites ...vous avez pu détruire des boucles, ou des conditions, ou autres ( J'avoue que vu la longueur du code j'ai pas cherché a approfondir)

Faite comme dis Eric concernant l'indentation dans votre code VBA, vous verrez que des erreurs vous sauteront au nez
Messages postés
24106
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juin 2021
6 804
Bonjour,

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