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 :

[Excel 365] Remplir la ligne suivante d'un tableau avec un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Par défaut [Excel 365] Remplir la ligne suivante d'un tableau avec un userform
    Bonjour !

    Je me creuse la tête depuis plusieurs heures sur ce problème :

    J'ai un formulaire dont j'aimerais reporter les champs dans une ligne de tableau. A chaque ajout, le formulaire s'efface et on peut commencer une nouvelle saisie qui sera ensuite ajouter au tableau.

    Pour l'instant j'ai codé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton4_Click()
        i = 11
        Range("Facture!B" & i).Value = Me.TextBox1.Value
        TextBox1.Value = ""
        i = i + 1
    End Sub
    L'erreur est que i est systématiquement remis à 11 à chaque fois que le bouton est activé. Mais je ne sais pas quelle est la ruse à utiliser pour pouvoir incrémenter le numéro de ligne...

    Merci !

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    on cherchant la dernière ligne non vide et ajouter 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j = Sheets("NONDETONONGLET").Range("B" & Rows.Count).End(xlUp).Row+1
    Pour le cas d'un tableau structuré tu peux procéder ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    Dim TB As Range
    Dim j As Long
    Set TB = Range("Tableau2")
    j = TB.Rows.Count + 1
    TB.Cells(j, 1) = TextBox1.Value
    TB.Cells(j, 2) = TextBox2.Value
    TextBox1.Value = ""
    TextBox2.Value = ""
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Par défaut
    Merci beaucoup BENNASR !

    Cependant, comme j'ai réalisé un tableau de données nommé "Facture", il me renvoie la première ligne vide située sous ce tableau, alors que la ligne au-dessus (donc faisant partie du tableau) est vide également.

    As-tu une idée pour contourner ce problème ?

    J'ai tenté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim ligne As Integer
        ligne = Worksheet("Facture!Tableau1").Range("B" & Rows.Count).End(xlUp).Row + 1
        MsgBox ligne
    Mais ça ne lui a pas plu...

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, pour un tableau structuré il n'y a pas lieu de chercher la dernière ligne, mais de l'ajouter directement, voici comment:

    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
    Sub AjouterContenuTextBoxALaDerniereLigne()
        Dim ws As Worksheet
        Dim Facture As ListObject
        Dim DerniereLigne As ListRow
     
     
        ' Assurez-vous de remplacer "Feuil1" par le nom de votre feuille de calcul
        Set ws = ThisWorkbook.Sheets("Feuil1")
     
        ' Assurez-vous de remplacer "Facture" par le nom de votre tableau structuré
        Set Facture = ws.ListObjects("Facture")
     
        ' Assurez-vous que TextBox1 est une référence valide à votre TextBox
         Set TextBox1 = UserForm1.TextBox1
     
        ' Ajouter une nouvelle ligne à la fin du tableau
        Set DerniereLigne = Facture.ListRows.Add
     
        ' Insérer le contenu de TextBox1 dans la première colonne de la dernière ligne
        DerniereLigne.Range(1, 1).Value = TextBox1.Value
     
        ' Vous pouvez également ajuster les colonnes pour d'autres valeurs TextBox si nécessaire
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Par défaut
    Merci beaucoup Franc !!

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

Discussions similaires

  1. [XL-2013] Passer a la ligne suivante d'une liste dans un userform
    Par phileasdav dans le forum Excel
    Réponses: 7
    Dernier message: 25/06/2020, 12h22
  2. [XL-2013] Listbox : remplir la ligne suivante
    Par Mél3790 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/06/2017, 10h45
  3. [MySQL] Remplir plusieurs lignes d'une seule table avec le même formulaire
    Par zehni dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/09/2006, 12h12
  4. Réponses: 4
    Dernier message: 07/09/2006, 12h12
  5. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 17h41

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