Bonjour à tous,
J'ai réalisé une macro qui ne fonctionne pas correctement. Désolé pour mon niveau en VBA
Si quelqu'un pouvait jeter un coup d'oeil, ce serait sympa
Pour faire simple, je cherche à faire une action dans la feuille 2 qui est Very Hidden à l'ouverture du classeur, je fais mon action à l'intérieur, puis je la remets Very Hidden.
Les actions consistent à renseigner la cellule C10 (ce sera automatique) avec 2 messages, message 1 si la cellule est complétée, message 2 si elle est vide. J'ai inséré aussi une gestion de beug avaec On Error GoTo Fin.
VB:
Option Explicit
Dim Sh As Worksheet
Private Sub Workbook_Open()
On Error GoTo Fin ' Gère une erreur d'exécution macro
Sheets("Feuil2").Visible = xlSheetVisible
With Sheets("Feuil2")
If Range("C10") = "" Then
.Range("C10") = "123"
If Range("C10") = "" Then
MsgBox "Cette opération a échoué. Veuillez contacter l'éditeur."
Else
MsgBox "Opération réalisée avec succès. Merci de transmettre ce fichier à l'éditeur."
If Sheets("Feuil2").Visible = True
Alors
Sheets("Feuil2").Visible = xlSheetVeryHidden
End If
End If
End With
' Si une erreur s'est produite...
Fin:
MsgBox "Erreur d'éxécution. Veuillez paramétrer les macros sur : Désactiver toutes les macros avec notification."
End Sub
Option Explicit
Private Sub Workbook_Open()
On Error GoTo Fin ' Gère une erreur d'exécution macro
ActiveWindow.DisplayWorkbookTabs = False ' N'affiche pas le nom des onglets
With Worksheets("Feuil2")
.[C10] = GetSerialNumber(Environ("homedrive")) ' cette cellule est remplie par un procédé automatique
If .[C10] = "" Then
MsgBox "Cette opération a échoué. Veuillez contacter l'éditeur."
Else
MsgBox "Opération réalisée avec succès. Merci de transmettre ce fichier à l'éditeur."
End If
End With
ActiveWindow.DisplayWorkbookTabs = True ' Affiche le nom des onglets
Exit Sub
' Si une erreur s'est produite...
Option Explicit
Private Sub Workbook_Open()
On Error GoTo Fin ' Gère une erreur d'exécution macro
ActiveWindow.DisplayWorkbookTabs = False ' N'affiche pas le nom des onglets
With Feuil2.[C10] ' attention : ce Feuil2 est le CodeName de la feuille !
.Value = GetSerialNumber(Environ("homedrive")) ' cette cellule est remplie par un procédé automatique
If .Value = "" Then
MsgBox "Cette opération a échoué. Veuillez contacter l'éditeur."
Else
MsgBox "Opération réalisée avec succès. Merci de transmettre ce fichier à l'éditeur."
End If
End With
ActiveWindow.DisplayWorkbookTabs = True ' Affiche le nom des onglets
Exit Sub
' Si une erreur s'est produite...
Fin:
MsgBox "Erreur d'éxécution. Veuillez paramétrer les macros sur : " _
& "Désactiver toutes les macros avec notification."
End Sub
J'ai encore du travail, la preuve aujourd'hui, mais j'espère aussi pouvoir aider les autres.
Je l'ai déjà fait sur le forum mais sur des thèmes qui me sont plus accessibles.
Bonne soirée.
Merci à tous ceux qui ont participé à ce phil
Je passe le sujet en résolu.