Erreur 91 Variable objet ou variable de bloc With non définie...

avekash

XLDnaute Nouveau
Bonsoir chers amis du du forum

Je viens une fois encore vers vous solliciter votre précieux coup de main.
En effet je suis sur un projet de dévisage qui a assez avancé et je rame sur une partie de mon code vba qui devrait se comporté ainsi: Mon classeur comporte plusieurs feuilles (PRORMA, FACTURE, PROSPECT...) dont je veux qu'un seul s'affiche une fois le bouton (EDITER PROFORMA, EDITER FACTURE...) cliquer a partir de ma USERFORM jusque là pas de problème. Seulement une fois les feuilles que je souhaite masquées le sont effectivement je n'arrive plus a partir de la même procédure à les afficher. J'obtiens un message d'erreur (Erreur 91 Variable objet ou variable de bloc With non définie) dans le code que j'ai mis afin d'afficher la feuille au cas ou elle serait cachée. Voici le bout de code :


' Afficher la feuille si caché
Dim PROFORMA As Sheets

With PROFORMA
If PROFORMA.Visible = xlSheetHidden Then ' La ligne qui cause le bug
PROFORMA.Visible = xlSheetVisible
PROFORMA.Select
End If
End With



Par ailleurs voici le code entier contenu dans le bouton :

Private Sub CommandButtonPro_Click()

'Declaration

Dim Jour As String, Mois As String, Annee As String, Num As Double
Jour = Format(Date, "dd")
Mois = Format(Date, "mm")
Annee = Format(Date, "yy")

' Afficher la feuille si caché

Dim PROFORMA As Sheets

With PROFORMA
If PROFORMA.Visible = xlSheetHidden Then ' La ligne qui cause le bug
PROFORMA.Visible = xlSheetVisible
PROFORMA.Select
End If
End With

' Numéro de la Proforma

Num = CDbl(Left(Sheets("PROFORMA").Range("F6").Value, 4))
Sheets("PROFORMA").Range("NumProforma").Value = Format(Num + 1, "0000") & "-" & Jour & Mois & "-" & Annee

'Transférer les données dans la feuille excel PROFORMA

Range("PROFORMA!NomClient").Value = TextProClient.Value
Range("PROFORMA!NomInterlocuteur").Value = TextProContact.Value
Range("PROFORMA!NumTeleph").Value = TextProTeleph.Value
Range("PROFORMA!NumFax").Value = TextProFax.Value
Range("PROFORMA!NumMobile").Value = TextProCell.Value
Range("PROFORMA!AdressMail").Value = TextProEmail.Value
'Vérification des données texte et numérique avant transfer dans la feuille excel Facture

If UserFormCotProFac.TextProClient.Text = "" Then
MsgBox "Veuillez renseigner le champ Client."
UserFormCotProFac.TextProClient.SetFocus
Exit Sub
End If

If UserFormCotProFac.TextProContact.Text = "" Then
MsgBox "Veuillez renseigner le champ Contact."
UserFormCotProFac.TextProContact.SetFocus
Exit Sub
End If

If UserFormCotProFac.TextProTeleph.Text = "" Then
MsgBox "Veuillez entrer un N° de Téléphone."
UserFormCotProFac.TextProTeleph.SetFocus
Exit Sub
End If

If UserFormCotProFac.TextProFax.Text = "" Then
MsgBox "Veuillez entrer un N° de Fax."
UserFormCotProFac.TextProFax.SetFocus
Exit Sub
End If

If UserFormCotProFac.TextProCell.Text = "" Then
MsgBox "Veuillez entrer un N° de Cellulaire."
UserFormCotProFac.TextProCell.SetFocus
Exit Sub
End If

If UserFormCotProFac.TextProEmail.Text = "" Then
MsgBox "Veuillez saisir un email"
UserFormCotProFac.TextProEmail.SetFocus
Exit Sub
End If

'Conversion des formats des données textes saisis

UCase (UserFormCotProFac.TextFacContact.Text)
Application.WorksheetFunction.Proper (UserFormCotProFac.TextFacContact.Text)

'Vérification des données numérique

If Not IsNumeric(TextProTeleph) Then
MsgBox "Veuillez saisir un N° Fixe (Ex:20 21 22 23)"
End If
'Cacher le programme

UserFormCotProFac.Hide

'Afficher le classeur excel

Application.Visible = True

' Sélectionner la feuille PROFORMA et cacher les autres feuilles du classeur

Dim FiaFloua As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
For Each FiaFloua In Worksheets
If (FiaFloua.Name <> "PROFORMA") Then
FiaFloua.Visible = xlSheetHidden
End If
Next
Application.DisplayAlerts = True


' Vider les cellules du model avant son utilisation

Range("C17:F34").Select
Selection.ClearContents
Range("G17:G34").Select
Selection.ClearContents
Range("H17:H34").Select
Selection.ClearContents

End Sub
Merci pour votre aide.
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 91 Variable objet ou variable de bloc With non définie...

Bonjour,

A priori ta variable n'est pas initialisée et mal typée, essaye avec ceci :
Code:
Dim PROFORMA As Worksheet
Set PROFORMA = Sheets("nomfeuille")
If PROFORMA.Visible = xlSheetHidden Then PROFORMA.Visible = xlSheetVisible

bon après midi
@+
 

avekash

XLDnaute Nouveau
Re : Erreur 91 Variable objet ou variable de bloc With non définie...

Merci pierrot pour ta promptitude

j'essaie ta solution et je te fais le retour

@ tout de suite.

Bonjour,

A priori ta variable n'est pas initialisée et mal typée, essaye avec ceci :
Code:
Dim PROFORMA As Worksheet
Set PROFORMA = Sheets("nomfeuille")
If PROFORMA.Visible = xlSheetHidden Then PROFORMA.Visible = xlSheetVisible

bon après midi
@+
 

Statistiques des forums

Discussions
312 231
Messages
2 086 457
Membres
103 219
dernier inscrit
Akyrah