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 :

Utilisation d'une donnée variable dans une cellule [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Utilisation d'une donnée variable dans une cellule
    Bonjour,

    Je n'arrive pas mettre une donnée variable dans une cellule comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Intersect([C1:C20], Target) Is Nothing And Target.Count = 1 Then
       code   
    End If
    fonctionne bien

    Remplacer le 20 par une variable car le numéro de ligne est différents suivant les cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Intersect([C1:C" & Ligne & "], Target) Is Nothing And Target.Count = 1 Then
       code   
    End If
    ne fonctionne pas, erreur 424

    J'ai mis en pièce jointe un fichier Test.

    Merci de votre aide et en attente d'une solution,
    Jean-Michel
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Quel serait le problème si vous mettiez directement toute la colonne C ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
         If Target.Count > 1 Then Exit Sub
     
         If Not Intersect(Columns(3), Target) Is Nothing Then
                MsgBox "OK"
         End If
     
    End Sub
    Cordialement.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Je ne peux pas inclure toute la colonne C. Le test doit être de C1 à Cxx, xx étant un numéro de ligne variable.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Baluteaud Voir le message
    xx étant un numéro de ligne variable.
    Variable par rapport à quoi ?

    Cordialement.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    C'est dans un contexte de programmation bien précis, ou l'on doit savoir su l'utilisateur sélectionne une cellule compris entre C1 et Cxx. Comme indiqué, xx étant variable. Effectivement, on pourrait biaisé le test, en donnant à xx une valeur relativement important.

    Mais est il possible d'utiliser cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Intersect([C1:C20], Target) Is Nothing And Target.Count = 1 Then
       code   
    End If
    avec une variable à la place de C20 ? Qui est ma question d'origine.

    Toujours, dans ce même programme sous Excel, j'ai par exemple utilisé cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Parcours").Range("B3:E" & CelluleTrouvee.Row & "").Interior.ColorIndex = 34
    qui fonctionne parfaitement bien avec une variable pour le Range("B3:Exx") ou xx est : Au plaisir d'avoir une réponse,
    Cordialement

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Ligne = 25 ' A adapter
        ' If Not Intersect([C1:C] & Ligne, Target) Is Nothing And Target.Count = 1 Then
        If Not Intersect(Target, Range("C1:C" & Ligne)) Is Nothing And Target.Count = 1 Then
           MsgBox "OK"
        End If
     
    End Sub

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Merci Eric, réponse parfaite à ma question.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/05/2012, 10h24
  2. Réponses: 3
    Dernier message: 07/04/2011, 15h38
  3. Réponses: 6
    Dernier message: 13/11/2009, 17h06
  4. rendre une partie d'une phrase variable dans une cellule, est ce possible?
    Par voldo2142 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2008, 10h08

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