ShowAllData de la classe Worksheet a échoué

bonsoir a tous

juste un soucis avec le code d'impression qui fonctionne très bien

mais si je n'écris rien dans le userform et appui sur "avant impression"

il m'affiche tout ma base et en ferment l'apercu

erreur d'exécution 1004

la méthode ShowAllData de la classe Worksheet a échoué

voici le code en question

Private Sub CmbValider_Click()

Unload Me

Application.ScreenUpdating = False

Sheets("BASE").Visible = True

Sheets("BASE").Activate

Sheets("BASE").Range("c5") = TextBox1.Value

Range("B4").Select

Dim DerLig As Long

DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

Range("b4:g" & DerLig).Name = "base"

Range("base").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("B4:G5"), Unique:=False

Range("b1:g" & DerLig).Select

ActiveSheet.PageSetup.PrintArea = Selection

Sheets("BASE").Select

Rows("5:5").Select

Selection.EntireRow.Hidden = True

Range("A1").Select

MsgBox "Affiche l'apercu avant impression, cliquez sur imprimer pour continuer"

ActiveWindow.SelectedSheets.PrintPreview

ActiveSheet.ShowAllData 'reactiv les lignes de la "BASE"

Range("A1").Select

Sheets("BASE").Visible = False

Application.ScreenUpdating = True ' Autorise le raffraichissement écran

UserForm2.Show ' Affiche l'Userform

End Sub

je joins un fichier exemple

A+

Cordialement Aiglon74

bonjour a tous

voici la solution que j'ai mis en place

Private Sub CommandButton1_Click()

'aiglon74

Unload Me

End Sub

Private Sub CmbValider_Click()

'aiglon74

Unload Me

Application.ScreenUpdating = False

If TextBox1 = "" Then

'Message à l'utilisateur

MsgBox "Marquer une référence obligatoire.", vbInformation

'sortie de la procédure

Application.ScreenUpdating = True ' Autorise le raffraichissement écran

UserForm2.Show ' Affiche l'Userform

Exit Sub

End If

Sheets("BASE").Visible = True

Sheets("BASE").Activate

Sheets("BASE").Range("c5") = TextBox1.Value

Range("B4").Select

Dim DerLig As Long

DerLig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

Range("b4:g" & DerLig).Name = "base"

Range("base").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("B4:G5"), Unique:=False

Range("b1:g" & DerLig).Select

ActiveSheet.PageSetup.PrintArea = Selection

Sheets("BASE").Select

Rows("5:5").Select

Selection.EntireRow.Hidden = True

Range("A1").Select

'MsgBox "Affiche l'apercu avant impression, cliquez sur imprimer pour continuer"

ActiveWindow.SelectedSheets.PrintPreview

ActiveSheet.ShowAllData 'reactiv les lignes de la "BASE"

Range("A1").Select

Sheets("BASE").Visible = False

Application.ScreenUpdating = True ' Autorise le raffraichissement écran

UserForm2.Show ' Affiche l'Userform

End Sub

je joins un fichier

aiglon74

Bonjour

Et si tu remplaces :

ActiveSheet.ShowAllData

par :

If FilterMode = True Then ActiveSheet.ShowAllData

cela beuguerait toujours ?

Bye !

Bonjour gmb

cela fonctionne très bien

avec ton code

merci pour ton aide

et si on marque une référence qui n'est pas dans ma base

on pourrait avoir un message du style référence non valide

A+

aiglon74

Rechercher des sujets similaires à "showalldata classe worksheet echoue"