Ajouter des éléments à un tableau

  • Initiateur de la discussion Initiateur de la discussion apt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

apt

XLDnaute Impliqué
Bonsoir à tous,

Dans un tableau j'ai les lignes suivantes :

B-Pa-1
B-Pa-2
B-Pa-3
G-Pa-1
G-Pa-2
M-Pa-1


J'aimerais parcourir mon tableau pour ajouter des nouveaux éléments de telle façon à avoir un nouveau tableau avec les lignes suivantes :

B-Pa-1
B-Pa-2
B-Pa-3
G-Pa-1
G-Pa-2
M-Pa-1
B-Pa-4
G-Pa-3
M-Pa-2


Merci d'avance.

🙂
 
Re : Ajouter des éléments à un tableau

Merci pierrejean.

Ca marche pour ton exemple, mais il faut que je l'adapte à mon besoin.

Parceque le traitement est établit depuis un tableau et non pas une plage de cellules.
 

Pièces jointes

Dernière édition:
Re : Ajouter des éléments à un tableau

Re

Je croyais que mon exemple etait plutot le tien !!
J'ai essayé d'integrer le maximum des renseignements fournis par ton post initial

Et si cela ne convient pas , n'hesite pas a revenir et a exprimer tes besoins
 
Re : Ajouter des éléments à un tableau

Re,

En voulant apporté quelques modifications sur le code, excel m'envoi des erreurs ici :

Code:
Dim elem As String
coll.Add Left(elem, Len(elem - 1), CStr(Left(elem, Len(elem - 1))))

Alors comment faire pour récuperer la chaine de caractère contenue dans un éléménet d'un tableau ?

Merci.
 
Re : Ajouter des éléments à un tableau

Bonjour,

J'ai fait quelques modifications, mais le "Tableau" pose toujours des problèmes, ce qui ce voit clairement dans la ListBox affichée avec deux lignes vides supplémentaires, une au début de la liste et l'autre à la fin de la liste.

La première ligne vide doit disparaître

La dernière doit contenir un choix supplémentaire

En plus la colonne des prix dans la ListBox n'apparaît plus !!!! Pourquoi ?

Merci de votre aide 🙂
 

Pièces jointes

Re : Ajouter des éléments à un tableau

Re

Vois si cela te convient
Pas mal de modifs
de memoire :
Un redim initial du tableau a 2,0 (pour enlever le 1er vide)
Une refonte de l'ajout en fin de liste
Une revue de l'userForm (3 colonnes etc)
 

Pièces jointes

Re : Ajouter des éléments à un tableau

Re

j'ai amelioré par modif de la sub affichagefen , mais pour ce qui est de reperer dans la liste toutes les variantes et pour chacune la derniere afin d'ajouter 1 au dernier indice puis ajouter ceci a la listbox je rend mon tablier
J'aime bien les defis et il n'est pas impensable que j'essaie mais rien que devoir exprimer l'enoncé c'est deja une gageure

Edit: petit rappel moi c'est pierrejean
 

Pièces jointes

Re : Ajouter des éléments à un tableau

Bonsoir pierrejean 😉

Et je t'en remercie d'avoir pris la peine de me répondre.

1) Pour avoir un indice de plus au éléments du Tableau communs, j'ai modifier la procédure AjoutChoixTabList1()

Code:
Sub AjoutChoixTabList1()
    For p = 1 To UBound(Tableau, 2) - 1
        elem = Tableau(1, p)
        indc = Right$(elem, 1)
        chn = Left$(elem, Len(elem) - 2)
        For t = p + 1 To UBound(Tableau, 2)
            elem2 = Tableau(1, t)
            If InStr(chn, elem2) <> 0 Then
                If CInt(Right$(elem2, 1)) > indc Then indc = CInt(Right$(elem2, 1))
            End If
        Next t
        Tableau(1, UBound(Tableau, 2) + 1) = chn & indc
        MsgBox "Tableau(1, " & UBound(Tableau, 2) + 1 & ") = " & Tableau(1, UBound(Tableau, 2) + 1)
    Next p
End Sub

Mais le problème cette procédure n'est pas exécutée !!?

2) Pourquoi la ListBox1 prend trois colonnes ?

Merci.

🙂
 
Re : Ajouter des éléments à un tableau

Ca avance un peu.

Voilà ou j'en suis :

Code:
Sub AjoutChoixTabList1()
Dim coll As Collection
    Set coll = New Collection
    Dim elem As String
    For n = 0 To UBound(Tableau, 2)
        On Error Resume Next
        elem = Tableau(1, n)
        coll.Add Left$(elem, Len(elem) - 1), CStr(Left$(elem, Len(elem) - 1))
        On Error GoTo 0
    Next n
    For p = 1 To coll.Count
        elem = Tableau(1, p - 1)
        indc = CInt(Right$(elem, 1))
        'collection
        chn = coll(p)
        For t = p To coll.Count
            elem2 = Tableau(1, t)
            If elem2 <> "" And InStr(elem2, chn) <> 0 Then
                If CInt(Right$(elem2, 1)) > indc Then indc = CInt(Right$(elem2, 1))
            End If
        Next t
        ReDim Preserve Tableau(2, UBound(Tableau, 2) + 1)
        Tableau(1, UBound(Tableau, 2)) = chn & indc + 1
    Next p
End Sub

😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
765
Retour