redimmensionner une variable tableau en VBA ?

bérylion

XLDnaute Occasionnel
salut la foule,

je voudrai redimensionner le nombre de ligne de ma variable tableau de la manière suivante :

VB:
dim table1()

private sub test1()
table1 = Range(Range("A7:U7"), Range("A7:U7").End(xlDown)).Value
end sub

private sub test2()
Z = UBound(table1) + 1
ReDim Preserve table1(1 To Z, 1 To 21)
table1(Z, 2) = InputBox("REF ?")
end sub

j'ai bien essayé de transposer la bestiole pour avoir ReDim Preserve table1(1 To 21, 1 To Z) mais rien à faire ?!

à vot' bon coeur...
 

mécano41

XLDnaute Accro
Re : redimmensionner une variable tableau en VBA ?

Bonjour,

Je ne sais pas trop ce que tu veux faire mais ceci augmente bien la deuxième dimension de 1 (la seule qui puisse être modifiée avec Redim Preserve) cette dimension correspondant au nombre de lignes de 21 colonnes du tableau

Code:
Private Sub test1()
Dim table1()
table1 = WorksheetFunction.Transpose(Range(Range("A7:U7"), Range("A7:U7").End(xlDown)).Value)
Z = UBound(table1, 2) + 1
ReDim Preserve table1(1 To 21, 1 To Z)
table1(2, Z) = InputBox("REF ?")
End Sub

Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : redimmensionner une variable tableau en VBA ?

Bonjour à tous,

pour redimensionner la 1ère dimension :
Code:
Dim table1(), z
table1 = Range(Range("A7:U7"), Range("A7:U7").End(xlDown)).Value
table1 = Application.Transpose(table1)
z = UBound(table1, 2) + 1
ReDim Preserve table1(LBound(table1, 1) To UBound(table1, 1), _
    LBound(table1, 2) To z)
table1 = Application.Transpose(table1)

bonne soirée
@+
 

bérylion

XLDnaute Occasionnel
Re : redimmensionner une variable tableau en VBA ?

Bonjour à tous,

pour redimensionner la 1ère dimension :
Code:
Dim table1(), z
table1 = Range(Range("A7:U7"), Range("A7:U7").End(xlDown)).Value
table1 = Application.Transpose(table1)
z = UBound(table1, 2) + 1
ReDim Preserve table1(LBound(table1, 1) To UBound(table1, 1), _
    LBound(table1, 2) To z)
table1 = Application.Transpose(table1)

bonne soirée
@+

Salut,

merci mais j'avais essayé sans succès.

j'ai re-essayé avec ton code et j'ai toujours une incompatibilité de type à la ligne ''table1 = Application.Transpose(table1)''

d'autres pistes ??
 

bérylion

XLDnaute Occasionnel
Re : redimmensionner une variable tableau en VBA ?

Bonjour,

comprends pas trop... fonctionne chez moi.... tu n'aurais pas des cellules fusionnées par hasard....

bonne journée
@+

nan, pas de cells fusionnées ?!

j'ai fait un essai tout simple sur un classeur test et ça fonctionne ; c'est rassurant.
reste à trouver pourquoi j'ai cette incompatibilité dans le classeur réel...
je vais commencer par supprimer toutes les mises en forme pour voir comme ça fait

je reviens si je trouve d'ou viens cette erreur ; d'ici la si vous avez des pistes je suis preneur.

@+
 

bérylion

XLDnaute Occasionnel
Re : redimmensionner une variable tableau en VBA ?

Re,

modifie peut être la première instruction comme suit :
Code:
table1 = Range(Range("A7:U7"), Range("A7:U7").End(xlDown))

Merci mais j'ai contourné le problème
apparement c'est les types de données dans les cellules qui pose problème (nombre;date;texte;bouléen...) :
sur un classeur exemple tout fonctionne, je remplace les données bidons par les vraies et la ça couine ?!

du coup je fait des ajouts directement sur la feuille et je redéfinie la table1 dans la foulée :

VB:
Dim table1()
Dim StoreListIndex%

Private Sub CommandButton1_Click()
With Me.ListBox1
  .AddItem InputBox("Référence ?")
  Range("A1048576").End(xlUp).Offset(1, 0) = .ListCount + 6 'ID primaire
   Range("A1048576").End(xlUp).Offset(0, 2) = .List(.ListCount - 1)
table1 = Range(Range("A7:U7"), Range("A7:U7").End(xlDown)).Value
  .Selected(.ListCount - 1) = True
End With
End Sub

vu que les autres valeurs restent inchangées la table reste la même et mes ajouts sont pris en compte.
c'est pas forcément très "propre" mais ça fait la maille : j’achète quand même !

Affaire classée.
 

Discussions similaires

Réponses
12
Affichages
250

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet