VBA Tableau
Résolu/Fermé
dy
-
20 nov. 2008 à 14:04
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 22 nov. 2008 à 09:05
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 22 nov. 2008 à 09:05
A voir également:
- VBA Tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
7 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
21 nov. 2008 à 11:22
21 nov. 2008 à 11:22
C'est normal!
regarde dans l'aide de excel
avec les mots clé : Preserve redim tableau
tu verras qu'il n'est pas possible de redimensionner un tableau à 2 dimensions.
pour une dimension unique on peut faire comme ça mais il y a d'autres méthodes.
Public ListeUnites() As String
sub test()
For i = 0 To nbrlig - 1
ReDim Preserve maListe(i + 1)
' le tableau contient le code monétaire, un séparateur, la désignation
maListe(i) = Range("A3").Offset(i, 0).Value
Next i
end Sub
regarde dans l'aide de excel
avec les mots clé : Preserve redim tableau
tu verras qu'il n'est pas possible de redimensionner un tableau à 2 dimensions.
pour une dimension unique on peut faire comme ça mais il y a d'autres méthodes.
Public ListeUnites() As String
sub test()
For i = 0 To nbrlig - 1
ReDim Preserve maListe(i + 1)
' le tableau contient le code monétaire, un séparateur, la désignation
maListe(i) = Range("A3").Offset(i, 0).Value
Next i
end Sub
Utilisateur anonyme
21 nov. 2008 à 13:44
21 nov. 2008 à 13:44
Bonjour,
Le mot réservé [ Preserve ] permet de conserver les données déjà insérer
dans le tableau au moment du redimensionnement.
Tel que spécifié, Excel ne permet pas de redimmensionner un tableau
défini dans un type.
Il est possible par contre de dimensionner l'intérieur d'un type selon une
constante.
Exemple :
Lupin
Le mot réservé [ Preserve ] permet de conserver les données déjà insérer
dans le tableau au moment du redimensionnement.
Tel que spécifié, Excel ne permet pas de redimmensionner un tableau
défini dans un type.
Il est possible par contre de dimensionner l'intérieur d'un type selon une
constante.
Exemple :
Option Explicit ' Création de tableau Type Tableau Ligne As Integer Numero As Integer End Type Type Balance Nombre(5) As Integer End Type Dim Bloc() As Balance Dim Tab1() As Tableau ' Sub Essai() Dim J As Long, Message As String For J = 1 To 2 ReDim Preserve Tab1(J) Tab1(J - 1).Ligne = (50 * J) Tab1(J - 1).Numero = (100 * J) Next J For J = 1 To 2 ReDim Preserve Bloc(J) Bloc(J - 1).Nombre(0) = (10 * J) Bloc(J - 1).Nombre(1) = (20 * J) Bloc(J - 1).Nombre(2) = (30 * J) Bloc(J - 1).Nombre(3) = (40 * J) Bloc(J - 1).Nombre(4) = (50 * J) Next J Message = "" For J = 1 To 2 Message = Message & Str(Bloc(J - 1).Nombre(0)) & vbLf Message = Message & Str(Bloc(J - 1).Nombre(1)) & vbLf Message = Message & Str(Bloc(J - 1).Nombre(2)) & vbLf Message = Message & Str(Bloc(J - 1).Nombre(3)) & vbLf Message = Message & Str(Bloc(J - 1).Nombre(4)) & vbLf Next J MsgBox Message End Sub '
Lupin
slt lupin!
hélas je comprend pas le fait de créer balance et bloc !
un petit exemple
hélas je comprend pas le fait de créer balance et bloc !
un petit exemple
Public list() Type Tableau ligne() As Integer numero() As Variant End Type Sub test() Worksheets(2).Activate 'création de tableau Dim tab1() As Tableau ReDim tab1(10, 2) For I = 2 To F = 10 tab1(I).ligne = 8 tab1(I).numero = hu12hu Next I End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
21 nov. 2008 à 16:42
21 nov. 2008 à 16:42
re :
Voilà quelques explications, enfin j'espère que tu comprendras :-)
Lupin
Voilà quelques explications, enfin j'espère que tu comprendras :-)
Option Explicit Public List() Type Tableau ' Ici tu déclare 2 variables de type ' tableau () à l'intérieur d'un type ' C'est à mon avis ce qui ne va pas ! Ligne() As Integer Numero() As Variant ' Il faut déclarer le dimensionnement ' des 2 variables avec une constante 'Ligne(2) As Integer 'Numero(2) As Variant End Type ' Sub test() Dim F As Long Worksheets(2).Activate 'création de tableau Dim tab1() As Tableau ReDim tab1(10) ' Ici tu viens de redimensionner tab1 à 10 donc de [ 0 à 9 ] ' F = 9 For I = 2 To F ' Ici tu accède à la variable Ligne ' sans en préciser la position dans ' le tableau tab1(I).Ligne = 8 tab1(I).Numero = hu12hu ' On devrait trouver quelque chose ' comme ceci : 'tab1(I).Ligne(0) = 8 'tab1(I).Numero(0) = hu12hu 'tab1(I).Ligne(1) = 8 'tab1(I).Numero(1) = hu12hu Next I End Sub '
Lupin
d'accord lupin! j'ai du m'enbrouiller !
je voulais juste créer un tableau de 2 colonne et de 68 lignes par exemple
donc si je fait ca ! c'est bon ?
au faite je pense que la premiére erreur du un premier post vient du fait que je créer le type du tableau et le tableau dans un sub! c'est bien ce ?
encore merci Mr Lupin
je voulais juste créer un tableau de 2 colonne et de 68 lignes par exemple
donc si je fait ca ! c'est bon ?
Type Tableau Ligne As Integer Numero As Variant End Type sub test() Dim tab1() As Tableau ReDim tab1(2,68)
au faite je pense que la premiére erreur du un premier post vient du fait que je créer le type du tableau et le tableau dans un sub! c'est bien ce ?
encore merci Mr Lupin
Utilisateur anonyme
21 nov. 2008 à 17:25
21 nov. 2008 à 17:25
re :
Un tableau à 2 colonnes et 68 lignes
Lupin
Un tableau à 2 colonnes et 68 lignes
Option Explicit Type Tableau Ligne As Integer Numero As Variant End Type ' Sub test() Dim tab1() As Tableau Dim I As Long ReDim tab1(68) For I = 0 To 67 ' 68 Lignes tab1(I).Ligne = 8 ' Colonne 1 tab1(I).Numero = hu12hu ' Colonne 2 Next I End Sub '
Lupin
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
22 nov. 2008 à 09:05
22 nov. 2008 à 09:05
excellent je le garde