Avec VBA, accéder à une ligne déterminée et une cellule de colonne dans un tableau

Anonyme
2024-03-17T17:20:02+00:00

Je crée un tableau en recherchant une valeur dans une feuille. J'attribue ce tableau à une listbox, je modifie les valeurs récupérées dans des textbox et je veux mettre à jour le tableau. Si dans la listbox je choisis l'item 3 je veux modifier l'enregistrement ligne 4 du tableau.

Je patauge complétement avec l'instruction range. Existe-t-il un document téléchargeable sur la manipulation des données par VBA dans un tableau ?

Merci pour votre aide (et surtout compréhension !)

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

2 réponses

  1. Anonyme
    2024-03-17T18:03:48+00:00

    Bonjour D.Mouillaud,

    À l’aide de VBA, vous pouvez utiliser l’objet ListObject et ses propriétés et méthodes associées pour accéder aux cellules d’un tableau et les modifier. Une méthode générale pour y parvenir est la suivante :

    Recherchez la ligne de la table qui correspond à l’élément ListBox qui a été sélectionné. Pour accéder à la ligne en question, utilisez l’attribut Range de ListObject. En fonction des valeurs des zones de texte, mettez à jour les valeurs des cellules de cette ligne. En supposant que vous ayez une ListBox appelée « ListBox1 » et des TextBoxes appelées « TextBox1 », « TextBox2 », etc., voici un exemple de base : Sous-UpdateTableRow() Dim tbl As ListObject Afficher la ligne sélectionnée en tant que ligneListeDim Dim rowIndex As Integer

    ' Remplacez « Table1 » par le nom de votre table Définir tbl = ThisWorkbook.Sheets(« Sheet1 »). ListObjects(« Table1 »)

    ' Récupère l’index de l’élément sélectionné dans la ListBox rowIndex = ListBox1.ListIndex + 1 ' L’index ListBox est de base zéro

    ' Vérifier si un élément valide est sélectionné Si rowIndex > 0 alors ' Accéder à la ligne correspondante dans la table Définir selectedRow = tbl. ListeLignes(IndexLignes)

    ' Mettre à jour les valeurs de la ligne en fonction des valeurs TextBox selectedRow.Range.Cells(1, 1). Valeur = TextBox1.Value selectedRow.Range.Cells(1, 2). Valeur = TextBox2.Value ' Continuer ce modèle pour d’autres TextBoxes et colonnes

    ' Vous pouvez également actualiser la zone de liste pour refléter les modifications 'ListBox1.Effacer 'PopulateListBox ' Appelle une fonction pour remplir à nouveau la ListBox si nécessaire Fin de si Sous-marin d’extrémité

    Assurez-vous que le nom de votre table est remplacé par « Table1 » et que les titres ListBox et TextBox reflètent ce changement. Pourriez-vous également modifier les valeurs d’index des cellules de la ligne en fonction de la structure de votre tableau ?

    Veuillez consulter la documentation officielle de Microsoft sur les objets ListObject et ListRow pour plus de détails sur l’utilisation de VBA pour travailler avec des tables. En outre, la programmation VBA pour les tableaux Excel est couverte dans une pléthore de tutoriels et de ressources en ligne.

    J’espère que cela vous aidera. Sinceres salutations Saurabh

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2024-03-20T10:23:56+00:00

    Merci Saurabh, la traduction en français rend vos explications un peu obscures mais je crois que j'ai compris l'essentiel; Je vais tester votre solution et vous remercie par avance de l'aide que vous m'avez apportée.

    Didier

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire