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 :

Ou est l'erreur dans mon code VBA ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Ragnart
    Homme Profil pro
    Electricien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut Ou est l'erreur dans mon code VBA ?
    Bonjour à tous,
    J'ai créé un petit tableau pour gérer mes congélateurs à l'aide d'un formulaire, je bloque sur une macro dans mon UserForm.
    Voici une capture de mon tableau:
    Nom : Capture tableau.PNG
Affichages : 361
Taille : 55,3 Ko
    Lorsque je rempli mon formulaire, toutes les colonnes se remplissent sauf la colonne B
    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 CommandButton1_Click()If Sheets("Gestion congélateur").Range("B4") = "" Then
    Sheets("Gestion congélateur").Range("B4") = ComboBox1
    Else
    Sheets("Gestion congélateur").ListObjects(1).ListRows.Add
    End If
    Dlt = Sheets("Gestion congélateur").Range("D1048576").End(xlUp).Row
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox1
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox2
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox3
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox4
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox5
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox6
    Sheets("Gestion congélateur").Range("C" & Dlt) = TextBox1
    Sheets("Gestion congélateur").Range("E" & Dlt) = TextBox2
    Sheets("Gestion congélateur").Range("F" & Dlt) = TextBox3
    Sheets("Gestion congélateur").Range("G" & Dlt) = ComboBox7
    Unload UserForm1
    End Sub
    Bien sûr, dans l'Userform, j'ai créé des comboBox1 ComboBox2 etc. comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()TextBox2.Text = "jj/mm/aaaa"
    With ComboBox1
    .AddItem "Abats"
    .AddItem "Agneau"
    .AddItem "Boeuf"
    etc.
    End with
    End Sub
    D'ou vient le problème ? de la deuxième ligne de code ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Gestion congélateur").Range("B4") = ComboBox1
    il faudrait que j'y ajoute ComboBox2, ComboBox3 etc.
    si oui, séparé par des virgules ou avec le signe = ? Ou le problème vient-il d'ailleurs ?
    Voici une capture de L'UserForm : Merci à tous pour votre aide
    Nom : Userform.PNG
Affichages : 368
Taille : 28,6 Ko

  2. #2
    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,

    Il y a pour moi un souci dans tes lignes de codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox1
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox2
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox3
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox4
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox5
    Sheets("Gestion congélateur").Range("B" & Dlt) = ComboBox6
    Essaie de mettre un point d'arrêt, tu remarqueras que t'es données s'écrivent bien dans ta feuilles, y compris si ta combo est vide...

    Donc admettons que tu remplisses la cbo1, ça valeur sera ajouté à ta feuille mais des la lignes suivante si cb2 est vide, le vide sera ajouté dans ta feuille à la place de la valeur précédante.

    Tu devrais mettre un contrôle pour ajouter la valeur si valeur sde ta cba différente de "".

    Ps : il est aussi dommage de ne pas utilisé les attribut de ta table de donnée ( listObject) dans ton code, il n'en serait que plus lisible.

  3. #3
    Membre confirmé Avatar de Ragnart
    Homme Profil pro
    Electricien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Bonsoir mfoxy,
    effectivement, j'ai testé avec des points d'arrêt et en fait, les 6 ComboBox s'insèrent dans chaque ligne de la colonne B.
    Pas étonnant que rien ne s'inscrivent dans la colonne B
    Maintenant, pour mettre un contrôle, il va falloir m'en dire un petit peu plus... Je ne suis pas un expert.
    J'ai essayé ceci mais ça ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ComboBox1.Value = ""
               ComboBox2.Value = ""
               ComboBox3.Value = ""
               ComboBox4.Value = ""
               ComboBox5.Value = ""
               ComboBox6.Value = ""

  4. #4
    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,

    Le code que tu met dernier post est pour supprimer le contenu de ta cbo.

    Tu devrais, même s'il doit y avoir plus propre, modifier les lignes de code que j'ai cité plus haut de cette maniere

    Si cbo est différent de vide alors ajouter valeur sur la feuille

    Qui ce traduirait en vba par (en modifiant bien sur le nom de ta cbo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If cbo1.value <> "" Then  code pour ajout valeur cbo1
    If cbo2. Value<>"" Then code pour ajout valeur cbo2
    ....

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2016
    Messages : 16
    Par défaut
    Bonjour Ragnart,

    Si j'ai bien compris ce que tu souhaites faire, perso, je ferais un code qui remettrait les 5 autres combobox à null lors de la mise à jour de l'une des 6 combobox.

    Après, lors de la demande d'insertion d'un nouvel enregistrement, reste plus qu'à tester laquelle des 6 combobox n'est pas nulle...pour savoir la valeur à insérer dans ta colonne B

    A +

Discussions similaires

  1. [XL-2010] Ou est l'erreur dans mon code ?
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2016, 19h24
  2. Où est l'erreur dans mon code
    Par Linuxawi dans le forum SQL
    Réponses: 2
    Dernier message: 07/05/2012, 18h27
  3. Où est l'erreur dans mon code ?
    Par fitarika dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 31/12/2009, 03h09
  4. [DOM] quel est l'erreur dans mon code
    Par une_tite_question dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/08/2008, 11h20
  5. Réponses: 5
    Dernier message: 14/05/2006, 22h41

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