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 :

Vérifier présence cellule active dans la colonne F ou titre de colonne ="Projet"


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Inscrit en
    Août 2005
    Messages
    698
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 698
    Points : 252
    Points
    252
    Par défaut Vérifier présence cellule active dans la colonne F ou titre de colonne ="Projet"
    Bonjour,

    Pour "sécuriser" l'utilisation de ma macro, je souhaiterai vérifier que la cellule choisie par l'utilisateur est soit présente dans la colonne F ou que le titre de la colonne est "Projet".
    J'ai cherché sur la base des arguments de ActiveCell, mais je ne trouve pas comment faire.

    Auriez vous une idée comment apporter ce contrôle en début de macro ?

    Merci à tous par avance,

    Laurent

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 753
    Points : 28 603
    Points
    28 603
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    je souhaiterai vérifier que la cellule choisie par l'utilisateur est soit présente dans la colonne F
    Pour cela, il faut utiliser la procédure événementielle Worksheet_SelectionChange en testant la propriété Column de l'argument Target

    A lire éventuellement Les évènements dans la feuille de calcul Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Bonjour,

    En supposant que "la cellule choisie" est ActiveCell.
    En supposant que "le titre de la colonne" est la valeur en ligne 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ActiveCell.Column = 6 or Cells(1, ActiveCell.Column).Text = "Projet" Then
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre actif
    Inscrit en
    Août 2005
    Messages
    698
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 698
    Points : 252
    Points
    252
    Par défaut
    Au top, Merci beaucoup.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour a tous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ActiveCell.Column = 6 or Cells(1, ActiveCell.Column).Text = "Projet" Then
    la ca marche mais
    Attention l'entête de colonne "Projet" pourrait être éventuellement ailleurs qu'en ligne 1
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 951
    Points
    55 951
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]
    Attention l'entête de colonne "Projet" pourrait être éventuellement ailleurs qu'en ligne 1

    @ Patrick: Que n'as-tu pas compris dans:

    Citation Envoyé par Menhir Voir le message
    [...]
    En supposant que "le titre de la colonne" est la valeur en ligne 1.[...]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 951
    Points
    55 951
    Billets dans le blog
    131
    Par défaut
    Salut.

    Vu que tu parles d'entête de colonne, mon œil lit "table de données" ou "tableau structuré"...

    Dès lors, soit tes données ne sont pas dans un tableau structuré, et il me semble que ce serait une bonne idée d'y songer (à voir avec un éclaté d'écran de ta feuille) (voir éventuellement mon tuto sur le sujet), soit tes données sont dans une table de données et tu peux alors simplifier ton code, par exemple pour la colonne Projet de la table de données Tableau1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Target, Range("tableau1[projet]")) Is Nothing Then
        ...
        ...
      End If
    End Sub
    L'intérêt, si tu peux utiliser une table de données, est que le tableau peut se déplacer sans soucis dans la feuille sans que tu doives modifier ton code pour tenir compte de sa position. La référence structurée suivra les déplacements de ta colonne ou de ton tableau, et tiendra compte des ajouts/retrais de lignes sans que tu doives t'en soucier dans ton code.



    Tu pourrais même utiliser l'événement Workbook_SheetSelectionChange du classeur pour le cas où le tableau structuré pourrait être déplacé sur une autre feuille, ce qui permet de balader ton tableau où tu veux dans le classeur sans toucher à ton code... Voici le code à placer dans le module thisWorkBook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
      If Not Intersect(Target, Range("tableau1[projet]")) Is Nothing Then
        ...
      End If
    End Sub



    Tout cela étant dit, je suis curieux de connaître la raison qui t'amène à devoir gérer le fait que tu sélectionnes une cellule de cette colonne particulièrement.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [Google Sheets] Vérifier si cellule active est dans une range spécifique
    Par Beaudelicius dans le forum APIs Google
    Réponses: 1
    Dernier message: 21/03/2015, 10h06
  2. Vérifier cellule complétée dans une colonne
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/08/2010, 10h35
  3. Cellule active dans Excel
    Par chyriu84 dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/06/2008, 13h10
  4. nb de cellule vide dans une colonne?
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2008, 11h22
  5. Test de cellule activée dans une colonne permanent
    Par pisistrate dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/08/2007, 13h47

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