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 :

if target then [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut if target then
    Bonjour à tous.

    Un des mes collègue a préparé un fichier dans lequel il y a le code suivant...
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo CaMarchePas
     
    Dim Question1D As Integer, Question1F As Integer, PW As String, x As String, y As String
     
    If Target(1, 1).Column = 6 And Target(1, 1).Row = 9 And Target.Value = "x" Then
     
    Rows(Question1D & ":" & Question1F).Select
        Selection.EntireRow.Hidden = True
     
    End If
     
    If Target(1, 1).Column = 6 And Target(1, 1).Row = 9 And Target.Value <> "x" Then
     
    Rows(Question1D & ":" & Question1F).Select
        Selection.EntireRow.Hidden = False
     
    End If
    Il fait appel à moi pour l'aider suite à l'erreur 13. La situation se produit dès que plus d'une cellules sont sélectionnées et que l'on supprime le contenu.

    Existe-t-il une solution pour contourner ce problème.

    Merci à l'avance pour vos pistes de solutions.

    Dlight

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour,
    essayes ce code non testé
    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 Question1D As Integer, Question1F As Integer, PW As String, x As String, y As String
     
    If Target.Column = 6 And Target.Row = 9 And Selection.Rows.Count = 1 Then
      If Target.Value = "x" Then
        Rows(Question1D & ":" & Question1F).EntireRow.Hidden = True
      Else
        Rows(Question1D & ":" & Question1F).EntireRow.Hidden = False
      End If
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Remplace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo CaMarchePas
    Par

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Re
    Merci à vous deux pour votre aide.

    Le code proposé par casefayere donne l'erreur 13 simplement en exécutant l'action de masquer en sélectionnant la cellule en question.

    J'ai omis de vous dire qu'il y a quelques cellules à cocher qui feront la même action mais sur d'autres lignes. Le "resume next" démasque les autres lignes.

    Une fois de plus merci pour votre aide

    Dlight

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je n'ai pas fait gaffe mais ou sont les valeurs des variables dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...
     Rows(Question1D & ":" & Question1F)...
    Question1D = quoi
    Question1F= quoi
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Re
    Les informations se trouve dans une feuille. Puisque ce fichier sera sujet à modification dans le futur (ajout de questions dans cette section), je lui ai demandé d'inscrire les lignes de départ et de fin et des les récupérer dans le code.

    Question1D = [QI_Q1D] = 10
    Question1F = [QI_Q1F] = 13

    Merci

    Dlight

  7. #7
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Par défaut
    Salut
    Si [QI_Q1D] et [QI_Q1F] sont des cellules nommées tu peux récupérer leurs valeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Question1D = Names("QI_Q1D").RefersToRange
    Question1F = Names("QI_Q1F").RefersToRange
    Aussi pour éviter les erreurs en cas d'une fauts de frappe dans les cellules tu peux utiliser la fonction isNumeric("") dans un if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If IsNumeric(Names("QI_Q1D").RefersToRange) Then
        Question1D = Names("QI_Q1D").RefersToRange
    Else
        MsgBox " Votre cellule n'est pas numeric"
    end if
    avec le code de casefayere
    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim Question1D As Integer, Question1F As Integer, PW As String, x As String, y As String
    If IsNumeric(Names("QI_Q1D").RefersToRange) and IsNumeric(Names("QI_Q1F").RefersToRange) Then
      Question1D = Names("QI_Q1D").RefersToRange
      Question1F = Names("QI_Q1F").RefersToRange
     
      If Target.Address = "$F$9" And Selection.Rows.Count = 1 Then
        If Target.Value = "x" Then
          Rows(Question1D & ":" & Question1F).EntireRow.Hidden = True
        Else
          Rows(Question1D & ":" & Question1F).EntireRow.Hidden = False
        End If
      End If
    Else
     MsgBox " la cellule QI_Q1D ou QI_Q1F n'est pas numeric " 
    End if
    End Sub
    bonne soirée

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

Discussions similaires

  1. IF THEN ELSE imbriqués
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2004, 14h57
  2. Button et target blank
    Par Canou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 26/10/2004, 17h26
  3. TARGET sur autre page et autre cadre
    Par Shiftane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/09/2004, 13h09
  4. [CR 7] [débutante] pb avec if then else
    Par xs_nady dans le forum Formules
    Réponses: 8
    Dernier message: 28/05/2004, 15h36
  5. questions sur le if then end if;
    Par ghostlord79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2004, 16h35

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