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 :

Verifier la valeur de la cellule d'à coté suite modification des cellules d'une colonne [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut Verifier la valeur de la cellule d'à coté suite modification des cellules d'une colonne
    Bonjour,

    Je souhaite lors d'une saisie dans les cellules D10 à D16 et F10 à F16 vérifier si les cellules à cotés sont renseignées.

    Mon soucis, je veux alléger mon code et eviter de faire des if par cellule et je souhaite recuperer l'adresse de la cellule modifier afin de verifier celle d'à coté.
    Mais mon soucis, après modification de la cellule,si je fais un entrée, la cellule active devient celle d'en dessous, et si je clique sur une autre cellule pour sortir de ma cellule modifiée, je n'arrive pas a récupérer l'adresse de ma cellule modifiée.

    Pouvez vous me venir en aide svp.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligne As Byte, colonne As Byte
     
     
        If Not Application.Intersect(Target, Range("D10:D16, F10:F16")) Is Nothing Then
        ligne = ActiveCell.Row
        colonne = ActiveCell.Column
            If Cells(ligne, colonne - 1) = "" Then 'verifie si les heures d'arrivées sont renseignées avant les heures de depart
                MsgBox ("veuillez renseigner l'heure d'arrivée avant l'heure de départ")
                'Cells(ligne, colonne).Clear
            End If
        End If
    par avance

    Seb

  2. #2
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    J'ai trouvé, désolé d'avoir posté pour rien (une bonne douche, y a que ça pour remettre les idées en place )
    Je recupere la valeur avec target :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligne As Byte, colonne As Byte, absence As String
     
     
        If Not Application.Intersect(Target, Range("D10:D16, F10:F16")) Is Nothing Then
        ligne = Target.Cells.Row
        colonne = Target.Cells.Column
            If Cells(ligne, colonne - 1) = "" Then 'verifie si les heures d'arrivées sont renseignées avant les heures de depart
                MsgBox (ligne)
                MsgBox ("veuillez renseigner l'heure d'arrivée avant l'heure de départ")
                Cells(ligne, colonne).Clear
            End If
    End If
    Bonne journée
    Seb

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Non, ça c'est mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ligne = Target.Row
        colonne = Target.Column

  4. #4
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Sinon, il y avait çà qui n'était pas mal non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligne As Byte, colonne As Byte
        If Target.Count > 1 Then Exit Sub
        If Not Application.Intersect(Target, Range("D10:D16, F10:F16")) Is Nothing Then
            If Target.Offset(0, -1) = "" Then
                MsgBox ("veuillez renseigner l'heure d'arrivée avant l'heure de départ")
                Application.EnableEvents = False
                Target.ClearContents
                Target.Offset(0, -1).Select
                Application.EnableEvents = True
            End If
        End If
    End Sub
    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Sapeur pompier
    Inscrit en
    Février 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sapeur pompier
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 442
    Points : 416
    Points
    416
    Par défaut
    à vous les gars

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

Discussions similaires

  1. [XL-2007] Incrementer des feuilles avec le nom des lignes d'une colonne + copie valeurs
    Par re dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/10/2010, 15h15
  2. Réponses: 3
    Dernier message: 26/04/2009, 06h24
  3. Réponses: 1
    Dernier message: 18/06/2008, 08h59
  4. [SQL] Effacer des membres avec une colonne ayant pour valeur un numéro
    Par mecmec dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/01/2008, 07h55
  5. recopier des cellules si il y a des numéros
    Par sylv123123 dans le forum Excel
    Réponses: 4
    Dernier message: 09/07/2007, 16h10

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