Bonjour a tous,
Je sais lire un fichier .ini et le placer dans un tableau. Mon fichier .ini
a des clés qui posède des items séparer par des "/". le nbr items varie pour
caque clé
ex:
[Epicerie1]
sRanger1=Fruits
sRanger2=Pate a pizza/Saucisse hot dog/Bacon/creton/salade en pot/pogo
sRanger3=Croustille/Biscuit en vrack/Pain tout genre/Tortillase/Gateau en
Boite/Gateau congeler
sRanger5=Fruit en conserve/Barre tendre/Confiture/Nutella/Beurre de
peanotte/Thé - tisane - café/Gruau/céréalesItem8=Beurre
etc....
J'utilise se code pour lire le fichier:
Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
Dim sTabNbrRangerEpicerie() As String
Dim iNoRangerEpicerie As Integer
Dim sTabItemRanger() As String
Dim iNbrItem As Integer
Dim i As Integer
Dim j As Integer
'Lie le nbr de clé pour cette épicerie.
sTabNbrRangerEpicerie = Split(modFichierINI.GetIniKeys(App.Path &
"\RangerEpicerie.ini", _
"Epicerie" & iNoEpicerie - 1), vbNullChar)
'Redimentionne le tableau qui aura les itemes des ranges.
ReDim sTabRangerEpicerie(UBound(sTabNbrRangerEpicerie) + 1, 0)
For iNoRangerEpicerie = LBound(sTabNbrRangerEpicerie) + 1 To
UBound(sTabNbrRangerEpicerie) + 1
'Lie les items d'une ranger.
sTabItemRanger = Split(modFichierINI.GetIniEntry(App.Path &
"\RangerEpicerie.ini", _
"Epicerie" &
iNoEpicerie - 1, _
"sRanger" &
iNoRangerEpicerie, ""), _
"/")
'Place les items dans le tableau sTabRangerEpicerie visa-vi cette
ranger.
For iNbrItem = LBound(sTabItemRanger) To UBound(sTabItemRanger)
sTabRangerEpicerie(iNoRangerEpicerie, iNbrItem) =
sTabItemRanger(iNbrItem)
'Si la ranger a plus d'items que le tableau peu contenir,
ajuster le sTabRangerEpicerie.
If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then
ReDim Preserve
sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1)
End If
Next iNbrItem
Next iNoRangerEpicerie
'Lire le tableau et l'afficher.
For i = LBound(sTabRangerEpicerie, 1) + 1 To UBound(sTabRangerEpicerie, 1)
j = 0
Do Until sTabRangerEpicerie(i, j) = ""
Debug.Print sTabRangerEpicerie(i, j)
j = j + 1
Loop
Debug.Print
Next i
End Sub
Mon problème est que lorsque je redimensionner mon tableau je me ramasse
avec des espaces non utiliser sur les lignes qui on moins d'items que la plus
grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un
pourrait me mettre sur une piste.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Picalausa François
Hello,
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non être une bonne solution. Ce qui est certain c'est que dans ce genre de tableaux, l'accès aux éléments est très rapide (par contre les redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir: If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons tassées à gauche, tu peux employer des tableaux de tableaux: Option Explicit
Private Type Vector Data() As String End Type
Private Sub Form_Load() Dim Vectors() As Vector Dim i As Long Dim j As Long
'Remplissage manuel du tableau ReDim Vectors(2)
'Des données de bases ReDim Vectors(0).Data(2) Vectors(0).Data(0) = "a" Vectors(0).Data(1) = "b" Vectors(0).Data(2) = "c"
'usage de with et taille différente ReDim Vectors(2).Data(3) With Vectors(2) .Data(0) = "f" .Data(1) = "g" .Data(2) = "h" .Data(3) = "i" End With
'Affiche les données For i = LBound(Vectors) To UBound(Vectors) For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data) Debug.Print Vectors(i).Data(j); Next Debug.Print Next i End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en stoquant les références au vecteur (ou en employant with, ce qui revient au même), on n'a plus qu'un coût fixe assez faible.
-- Picalausa François
"Raymond Fournier" <Raymond a écrit dans le message de news:
Bonjour a tous, J'utilise se code pour lire le fichier: Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
...
Mon problème est que lorsque je redimensionner mon tableau je me ramasse avec des espaces non utiliser sur les lignes qui on moins d'items que la plus grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un pourrait me mettre sur une piste.
Hello,
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non
être une bonne solution. Ce qui est certain c'est que dans ce genre de
tableaux, l'accès aux éléments est très rapide (par contre les
redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir:
If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then
ReDim Preserve
sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1)
End If
De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons
tassées à gauche, tu peux employer des tableaux de tableaux:
Option Explicit
Private Type Vector
Data() As String
End Type
Private Sub Form_Load()
Dim Vectors() As Vector
Dim i As Long
Dim j As Long
'Remplissage manuel du tableau
ReDim Vectors(2)
'Des données de bases
ReDim Vectors(0).Data(2)
Vectors(0).Data(0) = "a"
Vectors(0).Data(1) = "b"
Vectors(0).Data(2) = "c"
'usage de with et taille différente
ReDim Vectors(2).Data(3)
With Vectors(2)
.Data(0) = "f"
.Data(1) = "g"
.Data(2) = "h"
.Data(3) = "i"
End With
'Affiche les données
For i = LBound(Vectors) To UBound(Vectors)
For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data)
Debug.Print Vectors(i).Data(j);
Next
Debug.Print
Next i
End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en
stoquant les références au vecteur (ou en employant with, ce qui revient au
même), on n'a plus qu'un coût fixe assez faible.
--
Picalausa François
"Raymond Fournier" <Raymond Fournier@discussions.microsoft.com> a écrit dans
le message de news: D2FED2E7-AD4C-4D75-AC70-1CECDD5137B9@microsoft.com...
Bonjour a tous,
J'utilise se code pour lire le fichier:
Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
...
Mon problème est que lorsque je redimensionner mon tableau je me ramasse
avec des espaces non utiliser sur les lignes qui on moins d'items que la
plus
grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un
pourrait me mettre sur une piste.
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non être une bonne solution. Ce qui est certain c'est que dans ce genre de tableaux, l'accès aux éléments est très rapide (par contre les redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir: If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons tassées à gauche, tu peux employer des tableaux de tableaux: Option Explicit
Private Type Vector Data() As String End Type
Private Sub Form_Load() Dim Vectors() As Vector Dim i As Long Dim j As Long
'Remplissage manuel du tableau ReDim Vectors(2)
'Des données de bases ReDim Vectors(0).Data(2) Vectors(0).Data(0) = "a" Vectors(0).Data(1) = "b" Vectors(0).Data(2) = "c"
'usage de with et taille différente ReDim Vectors(2).Data(3) With Vectors(2) .Data(0) = "f" .Data(1) = "g" .Data(2) = "h" .Data(3) = "i" End With
'Affiche les données For i = LBound(Vectors) To UBound(Vectors) For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data) Debug.Print Vectors(i).Data(j); Next Debug.Print Next i End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en stoquant les références au vecteur (ou en employant with, ce qui revient au même), on n'a plus qu'un coût fixe assez faible.
-- Picalausa François
"Raymond Fournier" <Raymond a écrit dans le message de news:
Bonjour a tous, J'utilise se code pour lire le fichier: Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
...
Mon problème est que lorsque je redimensionner mon tableau je me ramasse avec des espaces non utiliser sur les lignes qui on moins d'items que la plus grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un pourrait me mettre sur une piste.
Raymond Fournier
Merci François, Je ne savais pas con pouvais faire un tableau dans un tableau. Je vais utiliser cette façon de prodèder.
Merci Raymond Fournier
"Picalausa François" wrote:
Hello,
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non être une bonne solution. Ce qui est certain c'est que dans ce genre de tableaux, l'accès aux éléments est très rapide (par contre les redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir: If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons tassées à gauche, tu peux employer des tableaux de tableaux: Option Explicit
Private Type Vector Data() As String End Type
Private Sub Form_Load() Dim Vectors() As Vector Dim i As Long Dim j As Long
'Remplissage manuel du tableau ReDim Vectors(2)
'Des données de bases ReDim Vectors(0).Data(2) Vectors(0).Data(0) = "a" Vectors(0).Data(1) = "b" Vectors(0).Data(2) = "c"
'usage de with et taille différente ReDim Vectors(2).Data(3) With Vectors(2) .Data(0) = "f" .Data(1) = "g" .Data(2) = "h" .Data(3) = "i" End With
'Affiche les données For i = LBound(Vectors) To UBound(Vectors) For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data) Debug.Print Vectors(i).Data(j); Next Debug.Print Next i End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en stoquant les références au vecteur (ou en employant with, ce qui revient au même), on n'a plus qu'un coût fixe assez faible.
-- Picalausa François
"Raymond Fournier" <Raymond a écrit dans le message de news: > Bonjour a tous, > J'utilise se code pour lire le fichier: > Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer) .... > Mon problème est que lorsque je redimensionner mon tableau je me ramasse > avec des espaces non utiliser sur les lignes qui on moins d'items que la > plus > grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un > pourrait me mettre sur une piste.
Merci François,
Je ne savais pas con pouvais faire un tableau dans un tableau. Je vais
utiliser cette façon de prodèder.
Merci Raymond Fournier
"Picalausa François" wrote:
Hello,
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non
être une bonne solution. Ce qui est certain c'est que dans ce genre de
tableaux, l'accès aux éléments est très rapide (par contre les
redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir:
If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then
ReDim Preserve
sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1)
End If
De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons
tassées à gauche, tu peux employer des tableaux de tableaux:
Option Explicit
Private Type Vector
Data() As String
End Type
Private Sub Form_Load()
Dim Vectors() As Vector
Dim i As Long
Dim j As Long
'Remplissage manuel du tableau
ReDim Vectors(2)
'Des données de bases
ReDim Vectors(0).Data(2)
Vectors(0).Data(0) = "a"
Vectors(0).Data(1) = "b"
Vectors(0).Data(2) = "c"
'usage de with et taille différente
ReDim Vectors(2).Data(3)
With Vectors(2)
.Data(0) = "f"
.Data(1) = "g"
.Data(2) = "h"
.Data(3) = "i"
End With
'Affiche les données
For i = LBound(Vectors) To UBound(Vectors)
For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data)
Debug.Print Vectors(i).Data(j);
Next
Debug.Print
Next i
End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en
stoquant les références au vecteur (ou en employant with, ce qui revient au
même), on n'a plus qu'un coût fixe assez faible.
--
Picalausa François
"Raymond Fournier" <Raymond Fournier@discussions.microsoft.com> a écrit dans
le message de news: D2FED2E7-AD4C-4D75-AC70-1CECDD5137B9@microsoft.com...
> Bonjour a tous,
> J'utilise se code pour lire le fichier:
> Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
....
> Mon problème est que lorsque je redimensionner mon tableau je me ramasse
> avec des espaces non utiliser sur les lignes qui on moins d'items que la
> plus
> grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un
> pourrait me mettre sur une piste.
Merci François, Je ne savais pas con pouvais faire un tableau dans un tableau. Je vais utiliser cette façon de prodèder.
Merci Raymond Fournier
"Picalausa François" wrote:
Hello,
En fonction de l'espace mémoire que tu t'autorise à occuper, ce peut ou non être une bonne solution. Ce qui est certain c'est que dans ce genre de tableaux, l'accès aux éléments est très rapide (par contre les redimensionnements successifs le sont moins).
Pour accélérer, tu peux déjà sortir: If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If De ta boucle (le mettre devant), puisqu'il ne dépend pas de iNbrItem
Pour éviter le gaspillage mémoire, puisque tes données sont de toutes façons tassées à gauche, tu peux employer des tableaux de tableaux: Option Explicit
Private Type Vector Data() As String End Type
Private Sub Form_Load() Dim Vectors() As Vector Dim i As Long Dim j As Long
'Remplissage manuel du tableau ReDim Vectors(2)
'Des données de bases ReDim Vectors(0).Data(2) Vectors(0).Data(0) = "a" Vectors(0).Data(1) = "b" Vectors(0).Data(2) = "c"
'usage de with et taille différente ReDim Vectors(2).Data(3) With Vectors(2) .Data(0) = "f" .Data(1) = "g" .Data(2) = "h" .Data(3) = "i" End With
'Affiche les données For i = LBound(Vectors) To UBound(Vectors) For j = LBound(Vectors(i).Data) To UBound(Vectors(i).Data) Debug.Print Vectors(i).Data(j); Next Debug.Print Next i End Sub
Le temps d'accès sera un peu plus long que dans le cas précédent, mais en stoquant les références au vecteur (ou en employant with, ce qui revient au même), on n'a plus qu'un coût fixe assez faible.
-- Picalausa François
"Raymond Fournier" <Raymond a écrit dans le message de news: > Bonjour a tous, > J'utilise se code pour lire le fichier: > Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer) .... > Mon problème est que lorsque je redimensionner mon tableau je me ramasse > avec des espaces non utiliser sur les lignes qui on moins d'items que la > plus > grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un > pourrait me mettre sur une piste.
Utilisation de la fonction GetPrivateProfileString de l'API Windows... C'est fait pour ;o)
-Thierry-
"Raymond Fournier" <Raymond a écrit dans le message de news:
Bonjour a tous, Je sais lire un fichier .ini et le placer dans un tableau. Mon fichier
.ini
a des clés qui posède des items séparer par des "/". le nbr items varie
pour
caque clé
ex: [Epicerie1] sRanger1=Fruits
sRanger2=Pate a pizza/Saucisse hot dog/Bacon/creton/salade en pot/pogo
sRanger3=Croustille/Biscuit en vrack/Pain tout genre/Tortillase/Gateau en Boite/Gateau congeler
sRanger5=Fruit en conserve/Barre tendre/Confiture/Nutella/Beurre de peanotte/Thé - tisane - café/Gruau/céréalesItem8¾urre
etc....
J'utilise se code pour lire le fichier: Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
Dim sTabNbrRangerEpicerie() As String Dim iNoRangerEpicerie As Integer Dim sTabItemRanger() As String Dim iNbrItem As Integer Dim i As Integer Dim j As Integer
'Lie le nbr de clé pour cette épicerie. sTabNbrRangerEpicerie = Split(modFichierINI.GetIniKeys(App.Path & "RangerEpicerie.ini", _ "Epicerie" & iNoEpicerie - 1), vbNullChar)
'Redimentionne le tableau qui aura les itemes des ranges. ReDim sTabRangerEpicerie(UBound(sTabNbrRangerEpicerie) + 1, 0)
For iNoRangerEpicerie = LBound(sTabNbrRangerEpicerie) + 1 To UBound(sTabNbrRangerEpicerie) + 1 'Lie les items d'une ranger. sTabItemRanger = Split(modFichierINI.GetIniEntry(App.Path & "RangerEpicerie.ini", _ "Epicerie" & iNoEpicerie - 1, _ "sRanger" & iNoRangerEpicerie, ""), _ "/")
'Place les items dans le tableau sTabRangerEpicerie visa-vi cette ranger. For iNbrItem = LBound(sTabItemRanger) To UBound(sTabItemRanger) sTabRangerEpicerie(iNoRangerEpicerie, iNbrItem) > sTabItemRanger(iNbrItem) 'Si la ranger a plus d'items que le tableau peu contenir, ajuster le sTabRangerEpicerie. If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If Next iNbrItem Next iNoRangerEpicerie
'Lire le tableau et l'afficher. For i = LBound(sTabRangerEpicerie, 1) + 1 To
UBound(sTabRangerEpicerie, 1)
j = 0 Do Until sTabRangerEpicerie(i, j) = "" Debug.Print sTabRangerEpicerie(i, j) j = j + 1 Loop Debug.Print Next i
End Sub
Mon problème est que lorsque je redimensionner mon tableau je me ramasse avec des espaces non utiliser sur les lignes qui on moins d'items que la
plus
grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un pourrait me mettre sur une piste.
Merci. Raymond Fournier.
Utilisation de la fonction GetPrivateProfileString de l'API Windows... C'est
fait pour ;o)
-Thierry-
"Raymond Fournier" <Raymond Fournier@discussions.microsoft.com> a écrit dans
le message de news:D2FED2E7-AD4C-4D75-AC70-1CECDD5137B9@microsoft.com...
Bonjour a tous,
Je sais lire un fichier .ini et le placer dans un tableau. Mon fichier
.ini
a des clés qui posède des items séparer par des "/". le nbr items varie
pour
caque clé
ex:
[Epicerie1]
sRanger1=Fruits
sRanger2=Pate a pizza/Saucisse hot dog/Bacon/creton/salade en pot/pogo
sRanger3=Croustille/Biscuit en vrack/Pain tout genre/Tortillase/Gateau en
Boite/Gateau congeler
sRanger5=Fruit en conserve/Barre tendre/Confiture/Nutella/Beurre de
peanotte/Thé - tisane - café/Gruau/céréalesItem8¾urre
etc....
J'utilise se code pour lire le fichier:
Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
Dim sTabNbrRangerEpicerie() As String
Dim iNoRangerEpicerie As Integer
Dim sTabItemRanger() As String
Dim iNbrItem As Integer
Dim i As Integer
Dim j As Integer
'Lie le nbr de clé pour cette épicerie.
sTabNbrRangerEpicerie = Split(modFichierINI.GetIniKeys(App.Path &
"RangerEpicerie.ini", _
"Epicerie" & iNoEpicerie - 1), vbNullChar)
'Redimentionne le tableau qui aura les itemes des ranges.
ReDim sTabRangerEpicerie(UBound(sTabNbrRangerEpicerie) + 1, 0)
For iNoRangerEpicerie = LBound(sTabNbrRangerEpicerie) + 1 To
UBound(sTabNbrRangerEpicerie) + 1
'Lie les items d'une ranger.
sTabItemRanger = Split(modFichierINI.GetIniEntry(App.Path &
"RangerEpicerie.ini", _
"Epicerie" &
iNoEpicerie - 1, _
"sRanger" &
iNoRangerEpicerie, ""), _
"/")
'Place les items dans le tableau sTabRangerEpicerie visa-vi cette
ranger.
For iNbrItem = LBound(sTabItemRanger) To UBound(sTabItemRanger)
sTabRangerEpicerie(iNoRangerEpicerie, iNbrItem) > sTabItemRanger(iNbrItem)
'Si la ranger a plus d'items que le tableau peu contenir,
ajuster le sTabRangerEpicerie.
If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then
ReDim Preserve
sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1)
End If
Next iNbrItem
Next iNoRangerEpicerie
'Lire le tableau et l'afficher.
For i = LBound(sTabRangerEpicerie, 1) + 1 To
UBound(sTabRangerEpicerie, 1)
j = 0
Do Until sTabRangerEpicerie(i, j) = ""
Debug.Print sTabRangerEpicerie(i, j)
j = j + 1
Loop
Debug.Print
Next i
End Sub
Mon problème est que lorsque je redimensionner mon tableau je me ramasse
avec des espaces non utiliser sur les lignes qui on moins d'items que la
plus
grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un
pourrait me mettre sur une piste.
sRanger5=Fruit en conserve/Barre tendre/Confiture/Nutella/Beurre de peanotte/Thé - tisane - café/Gruau/céréalesItem8¾urre
etc....
J'utilise se code pour lire le fichier: Private Sub AfficherFlexRangerEpicerie(iNoEpicerie As Integer)
Dim sTabNbrRangerEpicerie() As String Dim iNoRangerEpicerie As Integer Dim sTabItemRanger() As String Dim iNbrItem As Integer Dim i As Integer Dim j As Integer
'Lie le nbr de clé pour cette épicerie. sTabNbrRangerEpicerie = Split(modFichierINI.GetIniKeys(App.Path & "RangerEpicerie.ini", _ "Epicerie" & iNoEpicerie - 1), vbNullChar)
'Redimentionne le tableau qui aura les itemes des ranges. ReDim sTabRangerEpicerie(UBound(sTabNbrRangerEpicerie) + 1, 0)
For iNoRangerEpicerie = LBound(sTabNbrRangerEpicerie) + 1 To UBound(sTabNbrRangerEpicerie) + 1 'Lie les items d'une ranger. sTabItemRanger = Split(modFichierINI.GetIniEntry(App.Path & "RangerEpicerie.ini", _ "Epicerie" & iNoEpicerie - 1, _ "sRanger" & iNoRangerEpicerie, ""), _ "/")
'Place les items dans le tableau sTabRangerEpicerie visa-vi cette ranger. For iNbrItem = LBound(sTabItemRanger) To UBound(sTabItemRanger) sTabRangerEpicerie(iNoRangerEpicerie, iNbrItem) > sTabItemRanger(iNbrItem) 'Si la ranger a plus d'items que le tableau peu contenir, ajuster le sTabRangerEpicerie. If UBound(sTabItemRanger) > UBound(sTabRangerEpicerie, 2) Then ReDim Preserve sTabRangerEpicerie(UBound(sTabRangerEpicerie), UBound(sTabItemRanger) + 1) End If Next iNbrItem Next iNoRangerEpicerie
'Lire le tableau et l'afficher. For i = LBound(sTabRangerEpicerie, 1) + 1 To
UBound(sTabRangerEpicerie, 1)
j = 0 Do Until sTabRangerEpicerie(i, j) = "" Debug.Print sTabRangerEpicerie(i, j) j = j + 1 Loop Debug.Print Next i
End Sub
Mon problème est que lorsque je redimensionner mon tableau je me ramasse avec des espaces non utiliser sur les lignes qui on moins d'items que la
plus
grande ligne du tableau. Est correct ou on peu faire mieux. Si quelqu'un pourrait me mettre sur une piste.