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 :

Target.column Vs erreur 1004


Sujet :

Macros et VBA Excel

  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 Target.column Vs erreur 1004
    Bonjour à tous.

    J'ai un erreur 1004 que je ne comprends pas...

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Column = 3 <> 0 Then
            x = InputBox("Quel est la valeur comptable ce ce placement ?", "Valeur Comptable")
            End If
     
     
    Target.Offset(0, 2) = x
    End Sub
    Mon but est de simplement afficher un inputbox dans la mesure où la cellule de la colonne C est modifiée et d'inscrire le résultat deux colonnes à droite.

    Merci à l'avance pour l'explication du code d'erreur 1004...

    Dlight

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut
    oublie donc ta cellule et analyse de manière plus générale...
    Regarde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    toto = 10
    MsgBox toto = 3 ' ne peux retourner qu'une boléenne (vrai oiu faux, ici bien évidemment faux)
    ' la valeur de Faux/False est 0 preuve :
    MsgBox "voilà lafvaleur de faux : " & Val(False)
    'et comme toto = 3 est égal à 0 (comme expliqué ci-dessus) ===>>> toto = 3 <> 0 retournera forcément faux
    MsgBox toto = 3 <> 0
    'et donc ta condition
    If toto = 3 <> 0 Then ' .... ne sera jamais vérifiée.
    et comprends ce que sont les valeurs et expressions booléennes.

    EDIT :
    la condition ne sera vérifiée, donc, que lorsque, dans cet exemple, toto = 3 (précisément)
    Mais alors : pourquoi passer par un test booléen et non, tout bêtement par :
    (ce qui revient au même)

  3. #3
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Target.Column = 3 Then
            x = InputBox
    suffit.
    "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...
    ---------------

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    ou alors (mais il ne le dit pas) on lui impose d'utiliser un test logique, avec un opérateur logique) et, dans ce cas, invitons-le à étudier ce qu'est l'opérateur logique Xor.

  5. #5
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par babaothe Voir le message
    ou alors (mais il ne le dit pas) on lui impose d'utiliser un test logique, avec un opérateur logique) et, dans ce cas, invitons-le à étudier ce qu'est l'opérateur logique Xor.
    Je trouve ce que tu dis totalement absurde
    "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...
    ---------------

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Je trouve ce que tu dis totalement absurde
    tout à fait d'accord avec toi, en remplaçant "absurde" par "superfétatoire" ou "démesuré" (ce que sont quelque fois les exercices imposés).

  7. #7
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par babaothe Voir le message
    tout à fait d'accord avec toi, en remplaçant "absurde" par "superfétatoire" ou "démesuré" (ce que sont quelque fois les exercices imposés).
    Mais oui, mais oui

    Et si on ne croit pas celle-là, tu nous en racontes une autre, qu'on rigole encore un peu?

    Hou Hou, les méchants formateurs qui font rien qu'à embêter les apprenants...
    "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...
    ---------------

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ou ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Column = 3 And Target.Count = 1 Then
        If Target.Value <> 0 Then Target.Offset(0, 2).Value = InputBox("Quel est la valeur comptable ce ce placement ?", "Valeur Comptable")
    End If
    End Sub

  9. #9
    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 Target.column
    Merci à vous tous pour vos différentes réponses. J'ai finalement utilisé le dernier code, celui de mercatog

    J'ai encore un problème avec un autre bout de code du même genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Count = 1 Then
     
        If Target.Value = 7 Then Target.Offset(0, 19).Value = 160
     
    End sub
     
    End If
    Si ma feuille est protégé, ça ne fonctionne pas même si la cellule n'est pas verouillé et que je suis en mesure d'inscrire le 160...

    Avez-vous une idée ?


    Merci à l'avance

  10. #10
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Dans ta demande initiale, tu parles d'inscrire la valeur 2 colonnes à droite.

    Dans le code que tu donnes, tu tentes d'inscrire la valeur 19 colonnes à droite.

    Le problème pourrait venir de là...
    "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...
    ---------------

  11. #11
    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 Target
    Merci encore une fois pour vos réponses et désolé de ne pas avoir donné suite à votre dernier message plus rapidement...


    Ma demande initiale fonctionne...

    Je me suis inspiré du dernier code de mercatog afin que dans un autre onglet si dans la colonne B le nombre 7 est inscrit, 19 colonnes à droite le nombre 160 soit inscrit automatiquement

    Actuellement, si ma feuille est protégé mais que la 19e colonne à droite n'est pas verrouillée, le 160 ne s'inscrit pas. Si ma feuille n'est pas protégé, le 160 s'inscrit.

    Quelqu'un aurait une idée ?

Discussions similaires

  1. pb Range: erreur 1004
    Par charlie105 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2006, 17h10
  2. [VB-E] Erreur 1004 dans une boucle For
    Par lycaon dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/11/2006, 22h41
  3. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50
  4. [Excel] Erreur 1004 avec un search
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 13h54
  5. Insérer une image : Erreur 1004
    Par dp_favresa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/10/2005, 14h01

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