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 :

Ajout d'une nouvelle ligne si pas de données trouvées dans le tableau [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut Ajout d'une nouvelle ligne si pas de données trouvées dans le tableau
    Bonjour forum,

    J'ai une feuille sur laquelle j'enregistre des données de clients et de véhicules.

    Je voudrais que lorsque je parcours la colonne B du tableau, s' il n' y a pas de correspondance entre les lignes et la valeur du Textbox, alors on ajoute une nouvelle ligne au tableau sinon je modifie la ligne trouvée.
    Voici le code que j'ai écrit.
    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
    .     Dim X as integer, Y as integer, i as integer
     
    X= Sheets("Client").Range( "B" & Rows.Count).End(Xlup).Row
     
    For i= 2 to X
     
    If Sheets( "Client").Range("B" &  i)<> TextBox1 then 
     
    Sheets("Client"). ListObjects(1).Listrows.Add
     
    Y= Sheets("Client").Range( "B" & Rows.Count).End(Xlup).Row
     
    Sheets("Client").Range("A" & Y)= TextBox1
    Sheets(" Client").Range( "B" & Y)= TextBox2
     
    Else
     
    Sheets ("Client").Range("A" & i)= TextBox1
    Sheets ( "Client").Range( "B" & i)= TextBox2
     
    End if
    Next i
    le code fonctionne mais le problème est qu'arrivé sur la 4e ligne du tableau, au lieu d'ajouter une nouvelle ligne, il en ajoute 2. Après il en ajoute 6 ensuite 13, 26 etc ...
    J'ai essayé de bloquer la boucle en ajoutant exit for pour vérification et j'ai constaté que c'était la boucle le problème.

    Donc comment procéder ? Car quand je sors de la boucle, il ne vérifie plus mais ajoute maintenant une ligne comme je le souhaite.

    Merci à vous

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 383
    Points : 659
    Points
    659
    Par défaut
    Bonjour,

    En effet, ta boucle comporte un problème.
    Pour chaque valeur de i, tu testes si la valeur de la cellule est différente de la textbox, et si c'est le cas, tu ajoutes une ligne.

    Deux problèmes :
    - Déjà c'est très long de boucler sur chaque cellule de la colonne B
    - Et à chaque fois qu'une cellule est différentes de ta textbox, tu ajotues une ligne, ce qui fait au final beaucoup de lignes ajoutées.

    Préconisation :
    Rechercher la valeur de ta textbox dans la colonne B à l'aide de la méthode Find, et si le résultat est Nothing, alors ajouter une ligne à la fin.
    Demain, je vais commencer par m'acheter des lunettes. Et après, je verrai bien.

  3. #3
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci infiniment. Je n'ai jamais utilisé find. Pourrais tu me donner un code syntaxique ?

  4. #4
    Membre actif
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 597
    Points : 204
    Points
    204
    Par défaut
    Merci... Quelques recherches sur Google et l'aide Microsoft m'ont aidé. J'ai pu comprendre mon erreur et enfin comprendre la fonction find.

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

Discussions similaires

  1. [XL-2013] Tableau qui ne s'agrandit pas à l'ajout d'une nouvelle ligne
    Par charlieda dans le forum Excel
    Réponses: 2
    Dernier message: 07/12/2019, 07h07
  2. Script non fonctionnel à l'ajout d'une nouvelle ligne
    Par Eric5031 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2015, 17h00
  3. Ajout d'une nouvelle ligne à un String
    Par soussou80 dans le forum Langage
    Réponses: 12
    Dernier message: 27/10/2010, 23h40
  4. Ajouter une nouvelle ligne à chaque saisie de données
    Par etincelle01 dans le forum Langage
    Réponses: 5
    Dernier message: 09/05/2010, 19h32
  5. Ajout d'une nouvelle ligne
    Par Redg9 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 23/01/2009, 14h51

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