Concatener un tableau() après suppression d'un élément

Roland_M

XLDnaute Barbatruc
bien le bonjour à tous et bon week-end ensolleillé

existe t'il une fonction VBA pour concatener un tableau sans avoir à passer par des boucles ? quelque chose du genre remove !
(je ne pense pas mais il y a tellement de ressources en vb !?)

exemple concret et très simple, Tableau A(1 to 5)
A(1)=1 A(2)=2 A(3)=3 A(4)=4 A(5)=5

si je met A(3)=0 je souhaiterai décaler cet élément en dernier pour avoir ceci:
A(1)=1 A(2)=2 A(3)=4 A(4)=5 A(5)=0 <<<

actuellement pour décaler un l'élément je dois chaque fois boucler avec deux For...Next pour ramener tous les éléments afin d'avoir le supprimé en dernier, et sur un très grand tableau c'est un peu long !

Merci d'avance Roland
 
Dernière édition:

cbea

XLDnaute Impliqué
Re : Concatener un tableau() après suppression d'un élément

Bonjour Roland,

Pour le 1er cas, voici une méthode pour concaténer les éléments d'un tableau

Code:
    Dim A(1 To 5)
    Dim chaine As String
    
    A(1) = 1
    A(2) = 2
    A(3) = 3
    A(4) = 4
    A(5) = 5

    chaine = Join(A(), "")

Pour le 2me cas, si je trouve une solution et je te l'envoie.
 

Roland_M

XLDnaute Barbatruc
Re : Concatener un tableau() après suppression d'un élément

re
merci pour ta réponse Cbea, mais concatener n'est peut être pas le terme approprié !
car je veux garder mon tableau ! je souhaiterai quelque chose du genre
A(1)=1 A(2)=2 A(3)=3 ...
remove A(2) et j'aurai le résultat:
A(1)=1
A(2)=3
A(3)=""

un peu comme on ferai pour une collection d'où on peut utiliser remove
à part qu'avec remove l'élément est totalement supprimé !

Roland
 

Pierrot93

XLDnaute Barbatruc
Re : Concatener un tableau() après suppression d'un élément

Bonjour Roland, cbea

peut être comme ceci, mais à voir dans le contexte où tu veux l'utiliser:

Code:
Dim t(0 To 2) As Variant, temp
t(0) = 1
t(1) = 2
t(2) = 3

temp = t(1)
t(1) = t(2)
t(2) = temp

bonne journée
@+
 

dudu29

XLDnaute Nouveau
Re : Concatener un tableau() après suppression d'un élément

Salut,
je ne sais pas exactement comment tu utilises ce tableau mais tu peux eventuellement utiliser une combobox.
Ci joint un fichier avec un exemple :
En colonne a ta table de donnée.
Et en c2 tu peux verifier le contenu de ton 'tableau'

Voilà @+

Dudu
 

Pièces jointes

  • Classeur1.zip
    9.8 KB · Affichages: 42
  • Classeur1.zip
    9.8 KB · Affichages: 45
  • Classeur1.zip
    9.8 KB · Affichages: 46

Roland_M

XLDnaute Barbatruc
Re : Concatener un tableau() après suppression d'un élément

bonsoir à tous

Le Sub est un peu plus compliqué que cet exemple, mais c'est pour la clarté !
Supposons que je supprime L'Idx(150) d'un tableau (qui contient pas moins de 6000 données)
Afin de garder le tableau sans élément vide entre eux je dois tout décaler
en transférent Idx(150)=Idx(151) Idx(151)=Idx(152) ... jusqu'au dernier

Code:
Sub NewPointagSuppr(Idx)
For X = Idx To MaxPointage - 1: NewPointag(X) = NewPointag(X + 1): Next
NewPointag(MaxPointage) = ""
End Sub

j'espérai donc avoir une fonction(si elle existe) du genre NewPointag.RemoveItem (Idx)
mais RemoveItem, bien entendu, ne peut pas s'appliquer ici !

ceci pour éviter d'avoir à décaler tout le tableau chaque fois par boucle
mais je pense que ce n'est guère possible autrement !?

Roland
 

Discussions similaires

Réponses
5
Affichages
203

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12