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 :

Traitement automatique si cellule remplie - Popup [XL-2002]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut Traitement automatique si cellule remplie - Popup
    Bonjour à tous,

    Je suis complètement newbie en VBA et du coup, j'aurai besoin d'aide pour finir mon bout de code.

    Je voudrai afficher une popup si un utilisateur remplit une cellule qu'il ne doit pas remplir.
    Les cellules en question (à ne pas remplir) sont toutes sur la ligne 32, toutes les 2 colonnes en commençant par la colonne B (B32, D32, F32,..) jusqu'à BF32.

    J'ai écrit le bout de code suivant, qui fonctionne, mais seulement pour la cellule B32.
    Est-ce que vous pouvez m'aider à le faire fonctionner pour toutes les cellules nécessaires ?

    Merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Not IsEmpty(Intersect(Target, Range("B32"))) Then
     
        MsgBox "Ce créneau est rempli." & Chr(10) & _
        "Veuillez choisir un autre créneau." & Chr(10)
     
    Else:
        Exit Sub
     
    End If
     
    End Sub

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pourquoi utiliser VBA alors que Excel dispose de base, des fonctionnalités nécessaires (validation de donnée) ?

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    On peut afficher des popup avec cette fonctionnalité ?
    Je pensais que cela faisait seulement un traitement sur la cellule.

    Je pensais également que je ne pouvais pas sélectionner où appliquer le traitement "à appliquer une colonne sur 2 sur la ligne 32".

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par mathyr Voir le message
    On peut afficher des popup avec cette fonctionnalité ?
    je ne suis pas familier avec la version 2002 d'Excel, mais en 2010 oui:Nom : valid.jpg
Affichages : 303
Taille : 34,4 Ko

    Je pensais également que je ne pouvais pas sélectionner où appliquer le traitement "à appliquer une colonne sur 2 sur la ligne 32".
    tu peux le faire sur une cellule, puis copier coller

    ps: au cas où tu ne l'as pas vu je t'ai proposé une modif de ta macro juste avant que tu ne réponde à Patrice

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    je ne suis pas familier avec la version 2002 d'Excel,
    C'est la même boite de dialogue pour la validation de données (qui n'a pas évolué depuis).

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Bonjour, une proposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If target.row = 32 and target.Column Mod 2 = 0 and  target.Column <39 Then 'pas tout a fait sur pour le 39, flemme de compter c'est le num de colomme de BF+1
     
        MsgBox "Ce créneau est rempli." & Chr(10) & _
        "Veuillez choisir un autre créneau." & Chr(10)
     
    Else:
        Exit Sub
     
    End If
     
    End Sub
    edit:
    Citation Envoyé par Patrice740
    Pourquoi utiliser VBA alors que Excel dispose de base, des fonctionnalités nécessaires (validation de donnée) ?
    +1
    On peut aussi passer par la protection de la feuille

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour, une proposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If target.row = 32 and target.Column Mod 2 = 0 and  target.Column <39 Then 'pas tout a fait sur pour le 39, flemme de compter c'est le num de colomme de BF+1
     
        MsgBox "Ce créneau est rempli." & Chr(10) & _
        "Veuillez choisir un autre créneau." & Chr(10)
     
    Else:
        Exit Sub
     
    End If
     
    End Sub
    edit:

    +1
    On peut aussi passer par la protection de la feuille
    Merci pour ce bout de code !
    Encore une question (pour comprendre).
    Quand je remplis une cellule "interdite", j'ai bien la popup qui s'affiche. Et quand j'efface le contenu, la popup s'affiche également. Est-ce qu'il y a un code à rajouter pour éviter cela (je pensais que le exit sub était là pour ça) ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par mathyr Voir le message
    Quand je remplis une cellule "interdite", j'ai bien la popup qui s'affiche. Et quand j'efface le contenu, la popup s'affiche également. Est-ce qu'il y a un code à rajouter pour éviter cela (je pensais que le exit sub était là pour ça) ?
    worksheet change se déclenche quand il y un changement, supprimer le contenu c'est un changement
    le exit sub est là pour sortir de la macro si la cellule n'est pas dans la plage que tu souhaites

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par mathyr Voir le message
    Quand je remplis une cellule "interdite", j'ai bien la popup qui s'affiche. Et quand j'efface le contenu, la popup s'affiche également. Est-ce qu'il y a un code à rajouter pour éviter cela (je pensais que le exit sub était là pour ça) ?
    Ton Exit sub ne sert à rien, par contre ton code ne teste pas si "le créneau est rempli" !

  10. #10
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    Merci pour votre aide et vos réponses !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. verrouiller automatiquement les cellules remplies à l'ouverture du fichier
    Par Pascal1970 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2016, 03h25
  2. Réponses: 3
    Dernier message: 17/02/2012, 09h51
  3. [OLE Excel] Aller jusqu'à la dernière cellule rempli
    Par JBrek dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/08/2009, 19h21
  4. Traitement automatique des mails.
    Par ourk dans le forum Linux
    Réponses: 2
    Dernier message: 23/09/2004, 18h14
  5. Réponses: 1
    Dernier message: 02/06/2004, 13h59

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