Pb avec des ARRAY

nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007 - 29 juin 2004 à 17:55
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007 - 30 juin 2004 à 14:23
Bonjour tout le monde...

Bon voilà je manipule des array en VBA sous Excel... Tout marchait très bien du moment ou je traitais des tableaux avec une seule colonne. Mais voilà, partie sur ma lancée, je veux faire des manipulations avec un tableau avec x lignes et 3 colonnes.

J'ai donc en déclaration : public ID(1,2)

voici mon code qui merde :

Sub Get_all_Id()
    
    'Write the Dpam_ID in array ID
    For i = 1 To UBound(Dpam_ID)
'///////////////////////////////////////////////////////////       
 ReDim Preserve ID(i, 2) 'ca merde ici en faisant une erreur :
'"Array already dimensioned"
'//////////////////////////////////////////////////////////
        ID(i, 0) = Dpam_ID(i)
    Next i
    
    'If one of the FC_ID is not in array ID, then it adds it
        For j = 1 To UBound(FC_ID)
            For i = 1 To UBound(ID)
                If FC_ID(j) = ID(i, 0) Then
                    trouve = True
                    Exit For
                Else
                    trouve = False
                    indice = j
                End If
            Next i
            Select Case trouve
                Case False
                    ReDim Preserve ID(UBound(ID) + 1, 2)
                    ID(UBound(ID) - 1, 0) = FC_ID(indice)
            End Select
        Next j
    
    'write the id in the sheet all_ID
    Sheets("all_ID").Visible = True
    Sheets("all_ID").Select
    For i = 1 To UBound(ID)
        Cells(i, 1).Value = ID(i, 0)
    Next i
    Sheets("all_ID").Visible = False
                
End Sub


Tout marchait très bien avant que je ne rajoute des colonnes à mon tableau. La donne est simple, je veux un tableau avec un nombre de ligne qui varie (d'où le redim) et un nombre de colonne fixe = 3.

j'espère que je me suis fait comprendre...

Merci d'avance...

:-p :-p :-p :-p :-p :-p :-p :-p
Nag
ICQ# : 132028600
msn = giraudnba@msn.com
:-p :-p :-p :-p :-p :-p :-p :-p

3 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
29 juin 2004 à 19:49
salut

il faut déclarer un tableau à 2 dimensions :
public table(3,nb_ligne) as 'type'

la premiere dimension représente les colonnes, la seconde les lignes. De plus, redim preserve ne peut redimensionner que la dernière dimension.

voilà

ShareVB
0
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007
30 juin 2004 à 09:47
Merci, en fait j'ai juste inversé ligne colonne donc... Je vais tester tout ça......

Encore merci... Je tiens au courant...

:-p :-p :-p :-p :-p :-p :-p :-p
Nag
ICQ# : 132028600
msn = giraudnba@msn.com
:-p :-p :-p :-p :-p :-p :-p :-p
0
nagattaque Messages postés 230 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 5 juin 2007
30 juin 2004 à 14:23
Ok ça marche nikel... Merci !!!

:-p :-p :-p :-p :-p :-p :-p :-p
Nag
ICQ# : 132028600
msn = giraudnba@msn.com
:-p :-p :-p :-p :-p :-p :-p :-p
0
Rejoignez-nous