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 VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Erreur 1004 VBA
    Bonjour,

    je développe un formulaire de saisie, et j'aimerais que l'activation de mon bouton 17 copie la ligne qui vient d'être saisie dans le formulaire (UserForm) dans l'onglet "BDD" de mon fichier, à la dernière ligne non vide.

    La méthode que j'ai utilisé fonctionnait très bien jusqu'à ce que l'erreur 1004 apparaisse
    Erreur définie par l'application ou par l'objet
    ... et je ne comprends pas pourquoi, ni comment ça se fait que ça marchait hier et plus aujourd'hui

    Si quelqu'un a une idée...

    Merci BEAUCOUP!

    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
    Private Sub CommandButton17_Click()
     
        Me.Label2452.Visible = True 'label "analyse enregitrée" => affiché sur le formulaire
        Me.CheckBox22.Value = True
     
        Dim DerLig As Long                 'Copier les analyses terminés (appui bouton) dans l'onglet 5 "BDD"
            With Worksheets("BDD")
                DerLig = .Range("A2").End(xlDown).Row + 1
     
                NOM = "A20n" & Me.ComboBox1.Value
     
                Sheets("BDD").Range("C" & DerLig).Value = NOM
                Sheets("BDD").Range("A" & DerLig).Value = Year(Date)
                Sheets("BDD").Range("D" & DerLig).Value = Me.ComboBox25.Value
                Sheets("BDD").Range("F" & DerLig).Value = Me.TextBox2002.Value
     
                DerLig = DerLig + 1
            End With
     
    End Sub

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Par défaut
    Bonsoir cmuela,

    Tu as déclaré la variable derLig, mais où est la déclaration de la variable NOM ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Variable NOM
    Je l'avais oubliée en effet!

    Mais même avec cette correction je retombe sur la même erreur, qu'il me situe à la ligne que j'ai mise en rouge.

    La partie "affichage" avec le Label2452 et la Checkbox22 fonctionne, mais la copie d'un onglet à l'autre non.



    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
    Private Sub CommandButton17_Click()
    
        Me.Label2452.Visible = True 'label "analyse enregitrée" => affiché sur le formulaire
        Me.CheckBox22.Value = True
    
        Dim DerLig As Long
        Dim NOM As String
                                                                    'Copier les analyses terminés (appui bouton) dans l'onglet 5 "BDD"
            With Worksheets("BDD")
                DerLig = .Range("A2").End(xlDown).Row + 1
                
                Dim NOM As String
                NOM = "A20n" & Me.ComboBox1.Value
                
                Sheets("BDD").Range("C" & DerLig).Value = NOM
                Sheets("BDD").Range("A" & DerLig).Value = Year(Date)
                Sheets("BDD").Range("D" & DerLig).Value = Me.ComboBox25.Value
                Sheets("BDD").Range("F" & DerLig).Value = Me.TextBox2002.Value
                     
                DerLig = DerLig + 1
            End With
            
    End Sub

  4. #4
    Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Erreur définie par l'application ou par l'objet
    Bonsoir,

    Quand j'appuie sur le bouton en question, ça m'affiche: "Erreur 1004: Erreur définie par l'application ou par l'objet"

    J'ai essayé de remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("BDD").Range("C" & DerLig).Value =NOM
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.Range("C" & DerLig).Value = NOM
    Mais j'ai toujours une erreur 1004 avec cette fois ci:
    La méthode "Range" de l'objet 'Worksheets' a échoué
    Et... je ne vois pas trop ce que ça veut dire, ni quoi en faire!

    J'ai bien cherché une réponse dans les autres discussions du forum, mais j'ai l'impression qu'il n'existe pas de solution unique pour cette erreur, et je n'ai pas assez d'expérience sur VBA trouver une alternative...

    Merci beaucoup pour votre aide!!

  5. #5
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Essaie peut-être comme ceci
    Et vérifie dans le la fenêtre de deboggage (ctrl+g) la valeur de derlig

    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
     
    Private Sub CommandButton17_Click()
     
        Me.Label2452.Visible = True 'label "analyse enregitrée" => affiché sur le formulaire
        Me.CheckBox22.Value = True
     
        Dim DerLig As Long
        Dim NOM As String
                                                                    'Copier les analyses terminés (appui bouton) dans l'onglet 5 "BDD"
            With Worksheets("BDD")
                DerLig = .Range("A2").End(xldown).Row + 1
    Debug.print Derlig
     
                Dim NOM As String
                NOM = "A20n" & Me.ComboBox1.Value
     
                .Range("C" & DerLig).Value = NOM
               . Range("A" & DerLig).Value = Year(Date)
               . Range("D" & DerLig).Value = Me.ComboBox25.Value
               . Range("F" & DerLig).Value = Me.TextBox2002.Value
     
            End With
     
    End Sub

  6. #6
    Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2020
    Messages : 4
    Par défaut Résolu!
    Bonjour,

    J'ai ajouté la commande que vous m'avez suggéré et... la valeur de DerLig était la dernière ligne de ma feuille BDD.

    En fait j'aurais du rentrer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerLig = .Range("A1").End(xlDown).Row + 1
    au lieu de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DerLig = .Range("A2").End(xlDown).Row + 1
    La ligne A1 est mon en-tête, et la ligne A2 était remplie, du coup il cherchait après A2 et il ne trouvait pas la dernière ligne non vide.

    Erreur bête


    Merci beaucoup en tout cas, je commençais vraiment à désespérer!

    Bonne journée

Discussions similaires

  1. [XL-2010] erreur '1004' vba Excel
    Par chewi90 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/03/2015, 10h22
  2. Erreur 1004, VBA et Tableau Croisé Dynamique
    Par manu.68 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/02/2012, 08h59
  3. Débutant - Erreur 1004 VBA
    Par ilyaundebutatou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/11/2010, 11h08
  4. [E-07] erreur '1004' vba Excel (suite)
    Par mrah1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2009, 17h48
  5. erreur '1004' vba Excel
    Par mrah1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2009, 16h56

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