IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Msg box d'erreur VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut Msg box d'erreur VBA
    Je souhaiterai avoir un bout de code qui me met un message d'erreur si dans une des cellules des colonnes Y à AJ de la ligne 7 à la fin du tableau il y a écrit quelque chose, il faut que la colonne C soit rempli. Une message box qui dirait "erreur vous n'avez pas rempli la colonne C" ...
    Est-ce vous pouvez m'aider svp ?

    J'ai écrit cela mais ca ne marche pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    With Sheets(1)
     For Each Cel In .Range("Y7:AJ" & Rows.Count).SpecialCells(xlCellTypeConstants)
        If .Cells(Cel.Row, "C") = "" Then MsgBox "erreur vous n'avez pas rempli la colonne C", vbOKOnly + vbExclamation
      Next
    End With
    End Sub

    Merci
    Cdt

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Par défaut
    Bonjour,

    Pour moi, il manque un "." devant ton Rows
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("Y7:AJ" & Rows.Count)
    Essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("Y7:AJ" & .Rows.Count)
    Slooby

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Juin 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juin 2016
    Messages : 2
    Par défaut
    Ca marche merci !
    J'avais une autre question... En fait j'ai verrouillé la feuille et la macro ne marche plus...
    Vous savez pourquoi ?

    Pourtant j'ai bien écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Plg As Range
    With Sheets(1)
       On Error Resume Next
       Set Plg = .Range("Y7:AJ" & Rows.Count).SpecialCells(xlCellTypeConstants).EntireRow
       If Err Then Exit Sub
       Set Plg = Intersect(.Range("C7:C" & Rows.Count).SpecialCells(xlCellTypeBlanks), Plg)
       If Plg Is Nothing Then Exit Sub
       End With
    Application.GoTo Plg
    MsgBox "Veuillez indiquez PERM/TT dans la colonne C", vbOKOnly + vbExclamation
    End SUB
    Et j'ai aussi d'autre code dedans et pourtant la macro marche pour les autres mais pas sur celle ci...
    Merci d'avance

    Cdt

  4. #4
    Membre très actif
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2014
    Messages
    393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 393
    Par défaut
    Bonjour,

    C'est très simple :

    - Aucune cellule ne peut être modifiée si la feuille est verrouillée. La macro ne peut donc pas modifier les cellules.
    Solution :
    Au début de ta macro, déverrouille la feuille et une fois les modifications de cellules effectuées, il faut la verrouiller à nouveau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim Plg As Range
    With Sheets(1)
     
        'On déverrouille la feuille ici
       .Unprotect Password:="TonMotDePasse"
     
       On Error Resume Next
       Set Plg = .Range("Y7:AJ" & Rows.Count).SpecialCells(xlCellTypeConstants).EntireRow
       If Err Then Exit Sub
       Set Plg = Intersect(.Range("C7:C" & Rows.Count).SpecialCells(xlCellTypeBlanks), Plg)
       If Plg Is Nothing Then Exit Sub
    Application.GoTo Plg
    MsgBox "Veuillez indiquez PERM/TT dans la colonne C", vbOKOnly + vbExclamation
     
        'On protège à nouveau la feuille ici
         .protect Password:="TonMotDePasse"
       End With
    End SUB

Discussions similaires

  1. [AC-2007] erreur quand je clique sur annuler msg box
    Par sihamelm dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/10/2012, 17h30
  2. msg erreur VBA access
    Par MissAngela dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/06/2012, 18h50
  3. erreur VBA dans un recordset
    Par rapace dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 15h52
  4. Question Basique Gestion Erreur VBA ...
    Par Le_Phasme dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo