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 :

[VBA][Excel] Lancer procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut [VBA][Excel] Lancer procédure
    Re Bonjour,
    J'explique mon programme :
    1) Copier la feuille "Masque Planning" en dernier et la renommer "NomFichier"
    2) Prendre les données dans Planning annuel et les mettre dans "NomFichier"
    3) Mettre P,F,A dans les cellules I3 à I300
    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
     
        Sheets(NomFichier).Range("I3:I300").Select
        With Selection.validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="P,F,A"
            .IgnoreBlank = False
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    Maintenant mon problème arrive :
    Dès que l'on modifie la valeur I3 à I300 cela crée des actions.
    Le code qui fonctionne est celui là :
    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
    20
    21
    22
    23
     
    Dim détailanomalie
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Range("G2:H500"), Target) Is Nothing Then
            If Target = "A" Then
            Worksheets("anomalie").Cells(6, 4) = Cells(Target.Row, 5)
            Worksheets("anomalie").Cells(7, 4) = Cells(Target.Row, 4)
            Cells(Target.Row, 9).Activate
            ActiveCell.FormulaR1C1 = "=TODAY()"
            Worksheets("anomalie").Activate
            détailanomalie = Format(InputBox("Expliquer l'anomalie constatée", , ""))
            Worksheets("anomalie").Cells(9, 4).Value = détailanomalie
            Sheets("anomalie").Select
            Worksheets("anomalie").Cells(2, 5).Activate
            ActiveCell.FormulaR1C1 = "=TODAY()"
            Sheets("anomalie").Activate
            End If
            If Target = "F" Then
            Cells(Target.Row, 9).Activate
            ActiveCell.FormulaR1C1 = "=TODAY()"
            End If
        End If
    End Sub
    Le problème est sur la ligne "If Target = "A" Then"
    On me dit : Incompatibilité de type
    Quelqu'un a t-il une idée ??
    Merci

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Target c'est un Range ?

    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    Oui mais je ne comprend pas ta question ?

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Bah ton target est définit comme un Range..
    TU m'explique comment une plage de cellules peut etre égal a une lettre ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 23
    Par défaut
    C'est vrai ça
    c'est un peu comme dire choux=poire

    Quand tu veux tester la valeur d'un objet range, il vaut mieux utiliser
    range.value
    c'est plus sur. Donc dans ton cas ça donnerais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.value = "A" Then
    Voilà

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    ton idée est intéressante mais cela plante toujours avec la même raison incompatibilité de type.

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Par défaut
    Citation Envoyé par padre03
    C'est vrai ça
    c'est un peu comme dire choux=poire

    Quand tu veux tester la valeur d'un objet range, il vaut mieux utiliser
    range.value
    c'est plus sur. Donc dans ton cas ça donnerais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.value = "A" Then
    Voilà

    tu peux meme pas faire ça, il faut que tu cible la cellule que tuv eux, par xemple faire un target("A1").value la ça marcherai..

    Essaye peut etre d'écrire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target.cells(1,1).value = "A"
    pour faire un test, après c'est a toi de le mettre en forme pour ta procédure avec 2 for imbriqués par exemple, pour parcourir ta plage d cellule que tu appelle "target"
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

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

Discussions similaires

  1. [VBA/Excel]lancer une macro d'un autre document
    Par daniel_gre dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/05/2008, 15h37
  2. [vba excel] lancer 3 module a l'ouverture de mon userform
    Par CIBOOX dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 22/02/2007, 18h50
  3. [VBA-Excel] Lancer une option de la barre des menu
    Par vovor dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2006, 15h41
  4. [VBA-A] Lancer une procédure d'une application ArcMap
    Par TiT0f dans le forum VBA Access
    Réponses: 11
    Dernier message: 05/06/2006, 23h44
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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