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 :
Par ailleurs voici le code entier contenu dans le bouton :
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 :
Merci pour votre aide.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