Tableau dynamique à 2 dimensions

Le
mml
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()

ReDim Tableau(i)


Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilbert
Le #6327041
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc




mml
Le #6327031
Mais si on ne met pas de Dim au debut, Dim au début, message "Variable non
définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la plage" à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc








Gilbert
Le #6326991
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message "Variable non
définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la plage" à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc












mml
Le #6326951
Sur la ligne ReDim. En réel :

ReDim Preserve liste(NbTXT, 2)



"Gilbert" news:
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message "Variable
non


définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la plage" à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc
















Gilbert
Le #6326931
Donne tout le code de ta procédure, je n'arrive pas à reproduire l'erreur.

Quelle est la valeur de NbTXT?
As-tu essayé avec ReDim Preserve liste(5, 2) ? 5 ou n'importe quelle valeur,
juste pour être sûr que ce n'est pas la valeur de ta variable qui pose
problème.

--
Cordialement,

Gilbert


"mml" news:
Sur la ligne ReDim. En réel :

ReDim Preserve liste(NbTXT, 2)



"Gilbert" news:
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message "Variable
non


définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la plage"
à



l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc




















mml
Le #6326921
Voilà le code .

********************************************************************
Function ImportCDTXT() As Boolean

On Error GoTo Err_ImportCDTXT
Dim j As Byte, NbTXT As Byte, BonFichier As String
Dim liste() As String
Dim db As Database, mt As Recordset
Set db = CurrentDb()
Set mt = db.OpenRecordset("TFichiersEDI")

ImportCDTXT = False
NbTXT = 0

Dim varItm As Variant
Dim strFiles As String
Dim strTmp As String

'strFiles = ""
With Application.FileSearch
.NewSearch
.LookIn = "M:EDIMT"
.SearchSubFolders = False
.MatchTextExactly = True
.FileType = 1
If .Execute > 0 Then
For Each varItm In .FoundFiles
strTmp = fGetFileName(varItm)
If Left$(strTmp, 2) = "CD" And Right$(strTmp, 3) = "TXT"
Then 'CAS FICHIER TROUVé
BonFichier = strTmp
ReDim Preserve liste(NbTXT, 2)
NbTXT = NbTXT + 1
liste(NbTXT, 1) = BonFichier
liste(NbTXT, 2) = Str$(FileDateTime("M:EDIMT" &
BonFichier))

mt.AddNew
mt!NomFichier = Left$(BonFichier, 8)
mt!DateFichier = FileDateTime("M:EDIMT" & BonFichier)
mt!ATraiter = True
mt.Update

ImportCDTXT = True

'MsgBox ImportCDTXT & " " & .FoundFiles.Count
End If

Next varItm
End If

End With
If NbTXT > 0 Then
DoCmd.OpenForm ("Fichiers à traiter")
Else: MsgBox "Pas de fichier CDXXXXXX.TXT trouvé."
End If



Exit_ImportCDTXT:
Exit Function
mt.Close
db.Close
Set mt = Nothing
Set db = Nothing

Err_ImportCDTXT:
If Err = 3051 Then
Resume 'Permet de passer le message d'absence de droit de lire le
fichier.
Else: MsgBox Err.Description & " _ Erreur N° " & Err & " dans
ImportCDTXT()"
End If

End Function

*********************************************************************





"Gilbert" news:
Donne tout le code de ta procédure, je n'arrive pas à reproduire l'erreur.

Quelle est la valeur de NbTXT?
As-tu essayé avec ReDim Preserve liste(5, 2) ? 5 ou n'importe quelle
valeur,

juste pour être sûr que ce n'est pas la valeur de ta variable qui pose
problème.

--
Cordialement,

Gilbert


"mml" news:
Sur la ligne ReDim. En réel :

ReDim Preserve liste(NbTXT, 2)



"Gilbert" news:
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message
"Variable




non
définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la
plage"




à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc
























Gilbert
Le #6326901
Extrait de l'aide:

Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la
dernière dimension du tableau. Vous ne pouvez en aucun cas modifier le
nombre de dimensions. Par exemple, si votre tableau n'a qu'une dimension,
vous pouvez la modifier puisqu'il s'agit de la dernière et seule dimension.
Toutefois, si le tableau compte plusieurs dimensions, seule la taille de la
dernière dimension est modifiable si vous souhaitez préserver le contenu du
tableau.

Regardes de ce côté:

--
Cordialement,

Gilbert


"mml" news:
Voilà le code .

********************************************************************
Function ImportCDTXT() As Boolean

On Error GoTo Err_ImportCDTXT
Dim j As Byte, NbTXT As Byte, BonFichier As String
Dim liste() As String
Dim db As Database, mt As Recordset
Set db = CurrentDb()
Set mt = db.OpenRecordset("TFichiersEDI")

ImportCDTXT = False
NbTXT = 0

Dim varItm As Variant
Dim strFiles As String
Dim strTmp As String

'strFiles = ""
With Application.FileSearch
.NewSearch
.LookIn = "M:EDIMT"
.SearchSubFolders = False
.MatchTextExactly = True
.FileType = 1
If .Execute > 0 Then
For Each varItm In .FoundFiles
strTmp = fGetFileName(varItm)
If Left$(strTmp, 2) = "CD" And Right$(strTmp, 3) = "TXT"
Then 'CAS FICHIER TROUVé
BonFichier = strTmp
ReDim Preserve liste(NbTXT, 2)
NbTXT = NbTXT + 1
liste(NbTXT, 1) = BonFichier
liste(NbTXT, 2) = Str$(FileDateTime("M:EDIMT" &
BonFichier))

mt.AddNew
mt!NomFichier = Left$(BonFichier, 8)
mt!DateFichier = FileDateTime("M:EDIMT" &
BonFichier)

mt!ATraiter = True
mt.Update

ImportCDTXT = True

'MsgBox ImportCDTXT & " " & .FoundFiles.Count
End If

Next varItm
End If

End With
If NbTXT > 0 Then
DoCmd.OpenForm ("Fichiers à traiter")
Else: MsgBox "Pas de fichier CDXXXXXX.TXT trouvé."
End If



Exit_ImportCDTXT:
Exit Function
mt.Close
db.Close
Set mt = Nothing
Set db = Nothing

Err_ImportCDTXT:
If Err = 3051 Then
Resume 'Permet de passer le message d'absence de droit de lire le
fichier.
Else: MsgBox Err.Description & " _ Erreur N° " & Err & " dans
ImportCDTXT()"
End If

End Function

*********************************************************************





"Gilbert" news:
Donne tout le code de ta procédure, je n'arrive pas à reproduire
l'erreur.



Quelle est la valeur de NbTXT?
As-tu essayé avec ReDim Preserve liste(5, 2) ? 5 ou n'importe quelle
valeur,

juste pour être sûr que ce n'est pas la valeur de ta variable qui pose
problème.

--
Cordialement,

Gilbert


"mml" news:
Sur la ligne ReDim. En réel :

ReDim Preserve liste(NbTXT, 2)



"Gilbert" news:
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message
"Variable




non
définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la
plage"




à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc




























mml
Le #6326891
Superbe, c'est ça la réponse : inverser le 2 dimensions car seul la 2ème
peut être modifiée dynamiquement avec "Preserve".
Merci mille fois.


"Gilbert" news:
Extrait de l'aide:

Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la
dernière dimension du tableau. Vous ne pouvez en aucun cas modifier le
nombre de dimensions. Par exemple, si votre tableau n'a qu'une dimension,
vous pouvez la modifier puisqu'il s'agit de la dernière et seule
dimension.

Toutefois, si le tableau compte plusieurs dimensions, seule la taille de
la

dernière dimension est modifiable si vous souhaitez préserver le contenu
du

tableau.

Regardes de ce côté:

--
Cordialement,

Gilbert


"mml" news:
Voilà le code .

********************************************************************
Function ImportCDTXT() As Boolean

On Error GoTo Err_ImportCDTXT
Dim j As Byte, NbTXT As Byte, BonFichier As String
Dim liste() As String
Dim db As Database, mt As Recordset
Set db = CurrentDb()
Set mt = db.OpenRecordset("TFichiersEDI")

ImportCDTXT = False
NbTXT = 0

Dim varItm As Variant
Dim strFiles As String
Dim strTmp As String

'strFiles = ""
With Application.FileSearch
.NewSearch
.LookIn = "M:EDIMT"
.SearchSubFolders = False
.MatchTextExactly = True
.FileType = 1
If .Execute > 0 Then
For Each varItm In .FoundFiles
strTmp = fGetFileName(varItm)
If Left$(strTmp, 2) = "CD" And Right$(strTmp, 3) = "TXT"
Then 'CAS FICHIER TROUVé
BonFichier = strTmp
ReDim Preserve liste(NbTXT, 2)
NbTXT = NbTXT + 1
liste(NbTXT, 1) = BonFichier
liste(NbTXT, 2) = Str$(FileDateTime("M:EDIMT" &
BonFichier))

mt.AddNew
mt!NomFichier = Left$(BonFichier, 8)
mt!DateFichier = FileDateTime("M:EDIMT" &
BonFichier)

mt!ATraiter = True
mt.Update

ImportCDTXT = True

'MsgBox ImportCDTXT & " " & .FoundFiles.Count
End If

Next varItm
End If

End With
If NbTXT > 0 Then
DoCmd.OpenForm ("Fichiers à traiter")
Else: MsgBox "Pas de fichier CDXXXXXX.TXT trouvé."
End If



Exit_ImportCDTXT:
Exit Function
mt.Close
db.Close
Set mt = Nothing
Set db = Nothing

Err_ImportCDTXT:
If Err = 3051 Then
Resume 'Permet de passer le message d'absence de droit de lire le
fichier.
Else: MsgBox Err.Description & " _ Erreur N° " & Err & " dans
ImportCDTXT()"
End If

End Function

*********************************************************************





"Gilbert" news:
Donne tout le code de ta procédure, je n'arrive pas à reproduire
l'erreur.



Quelle est la valeur de NbTXT?
As-tu essayé avec ReDim Preserve liste(5, 2) ? 5 ou n'importe quelle
valeur,

juste pour être sûr que ce n'est pas la valeur de ta variable qui pose
problème.

--
Cordialement,

Gilbert


"mml" news:
Sur la ligne ReDim. En réel :

ReDim Preserve liste(NbTXT, 2)



"Gilbert" news:
Sur quelle ligne l'erreur d'exécution?

--

Cordialement,

Gilbert
"mml" news:
Mais si on ne met pas de Dim au debut, Dim au début, message
"Variable




non
définie" à la compil.
Et si on met un Dim Tableau(), message "Indice en dehors de la
plage"




à
l'exécution ...



"Gilbert" news:
Bonjour,

Tout simplement

ReDim Tableau(i, j)

--

Cordialement,

Gilbert
"mml" news:
Bonjour,

Je cherche à créer un tableau dynamique à 2 dimensions.

Pour 1 dimension je fais :

Dim Tableau()
...
ReDim Tableau(i)
...

Mais comment faire pour 2 dimensions ?

Marci d'avance.

Marc
































Publicité
Poster une réponse
Anonyme