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 :

Erreur 1004 définie par l'application : affectation valeur à une cellule [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut Erreur 1004 définie par l'application : affectation valeur à une cellule
    Il s'agit de délivrer la valeur d'un compteur de CODES BARRES et de l'incrémenter. Au début, sans l'instruction ON ERROR, la procédure s'arrêtait sans message d'erreur. Pour en avoir le coeur net, j'ai rajouté le filtrage des erreurs qui me donne l'Erreur 1004 sur la ligne suivant le ON ERROR. Je tourne en rond sur une question cent fois utilisée, sans pouvoir la résoudre.

    Merci pour votre aide.

    Option Explicit

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Function DonnerCodeQR() As Double
     
       Dim CodeQRcourant As Double, CodeQRsuivant As Double
       Dim nomWB As String, nomWS As String
       Dim wB As Excel.Workbook, wS As Excel.Worksheet
     
       nomWB = ActiveWorkbook.Name
       nomWS = "TESTS"
     
       Set wB = Workbooks(nomWB)
       Set wS = wB.Worksheets(nomWS)
     
       With wS
          CodeQRcourant = .Range("CompteurCodesQR")
          CodeQRsuivant = CodeQRcourant + 1
     
          .Range("CompteurCodesQR").Select
     
          On Error GoTo Erreur_DonnerCodeQR
          .Range("CompteurCodesQR").Value = CodeQRsuivant
          On Error GoTo 0
     
       End With
     
       GoTo Fin_DonnerCodeQR
     
    Erreur_DonnerCodeQR:
       MsgBox "Erreur : " & Err & " - " & Err.Description
     
    Fin_DonnerCodeQR:
       Set wS = Nothing
       Set wB = Nothing
     
       DonnerCodeQR = CodeQRcourant
     
    End Function

  2. #2
    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
    Bonjour
    Je ne sais pas comment tu veux lancer ton code et qu'est ce que tu veux en faire
    Par procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DonnerCodeQR()
     
    With ThisWorkbook.Worksheets("TESTS")
        .Range("CompteurCodesQR").Value = Val(.Range("CompteurCodesQR")) + 1
    End With
    End Sub
    Ou bien une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function DonnerCodeQR() As Double
     
    DonnerCodeQR = Val(ThisWorkbook.Worksheets("TESTS").Range("CompteurCodesQR")) + 1
    End Function
    Tu as surutilisé les variables pour pas grand chose.

  3. #3
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut Récupérer la valeur du compteur et l'incrémenter de +1
    Merci pour ton aide.

    Je veux lancer mon code par une Fonction qui me donne la valeur courante du compteur (cette partie fonctionne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function DonnerCodeQR() As Double
       
       Dim CodeQRcourant As Double, CodeQRsuivant As Double
       ...
       With wS
          CodeQRcourant = .Range("CompteurCodesQR")
          CodeQRsuivant = CodeQRcourant + 1
          ...   
       End With
       ...
       DonnerCodeQR = CodeQRcourant
       
    End Function
    mais je veux aussi qu'elle incrémente de +1 la cellule "CompteurCodesQR". Or c'est cette partie qui provoque l'erreur 1004. à savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       With wS
          CodeQRcourant = .Range("CompteurCodesQR")
          CodeQRsuivant = CodeQRcourant + 1
       
          .Range("CompteurCodesQR").Select
          
          On Error GoTo Erreur_DonnerCodeQR
          .Range("CompteurCodesQR").Value = CodeQRsuivant
          On Error GoTo 0
       
       End With
    La cellule B3 qui contient =DonnerCodeQR() reçoit bien la valeur courante du Compteur, mais c'est la cellule nommée CompteurCodesQR que je ne parviens pas à mettre à jour ???

    Quid du message "1004 Erreur définie par l'application" sur la ligne 8 ?

  4. #4
    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
    Si tu appelle ta fonction à partir d'une cellule, tu ne peux pas agir sur d'autres cellules.

  5. #5
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2010
    Messages : 18
    Par défaut Erreur 1004 - Explication trouvée
    Merci Mercatog pour ton aide.
    Je vais donc devoir trouver une autre voie.

    Cordialement

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

Discussions similaires

  1. [XL-2007] Erreur 1004, définie par l'application ou l'objet
    Par Litobig dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/02/2013, 15h49
  2. Erreur d'exécution 1004. Erreur définie par l'application ou par l'object
    Par Quentin15 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2011, 20h59
  3. ERREUR 1004-erreur défini par l'application ou par l'objet
    Par zineb87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2010, 16h40
  4. Erreur 1004 définie par l'application ou par l'objet
    Par GreatDeveloperOnizuka dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/12/2007, 09h33

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