Problème de remplissage d'un tableau deux D
Résolu
reno421
Messages postés
47
Statut
Membre
-
reno421 Messages postés 47 Statut Membre -
reno421 Messages postés 47 Statut Membre -
Bonjour,
Voici mon problème. J'essaie de remplir un tableau deux D à partir des cellules d'une feuille excel.
Il me semble que mon code est correcte pour tant j'obtient l'erreur 1004.
L'un d'entre vous peu-t-il m'aider SVP.
D'avance merci.
Voici mon problème. J'essaie de remplir un tableau deux D à partir des cellules d'une feuille excel.
Il me semble que mon code est correcte pour tant j'obtient l'erreur 1004.
L'un d'entre vous peu-t-il m'aider SVP.
D'avance merci.
Sub utilisation_tableau_3D() Dim Tab_zones_contacts() As Variant Dim i, j As Integer Dim fin_lg, fin_col As Integer Sheets("Zones").Select Range("A1").Select fin_lg = Range("A" & Rows.Count).End(xlUp).Row - 2 ' -2 car tableau démarre de 0 et on décompte la ligne titre fin_col = Cells(1, Cells.Columns.Count).End(xlToLeft).Column - 1 ' -1 car tableau démarre de 0 ReDim Tab_zone(fin_lg, fin_col) For i = 0 To fin_lg For j = 0 To fin_col Tab_zones_contacts(i, 0) = Sheets("Zones").Range(i + 2, j + 2).Value Next Next End Sub
A voir également:
- Problème de remplissage d'un tableau deux D
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Nombre de jours entre deux dates excel - Guide
3 réponses
Bonjour
Plusieurs soucis:
- ReDim Tab_zone(fin_lg, fin_col), le tableau ne s'appelle pas Tab_zone mais Tab_zones_contacts
-Sheets("Zones").Range(i + 2, j + 2).Value la syntaxe du range n'est pas la bonne, utiliser Sheets("Zones").Cells(i + 2, j + 2).Value
En plus simple on pourrait avoir
à noter que dans ces conditions les indices de tableau commencent à 1
A+
Plusieurs soucis:
- ReDim Tab_zone(fin_lg, fin_col), le tableau ne s'appelle pas Tab_zone mais Tab_zones_contacts
-Sheets("Zones").Range(i + 2, j + 2).Value la syntaxe du range n'est pas la bonne, utiliser Sheets("Zones").Cells(i + 2, j + 2).Value
En plus simple on pourrait avoir
Sub utilisation_tableau_3D()
Dim Tab_zones_contacts
Dim fin_lg, fin_col As Integer
With Sheets("Zones")
fin_lg = .Range("A" & .Rows.Count).End(xlUp).Row
fin_col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
Tab_zones_contacts = Range(.Cells(2, 1), .Cells(fin_lg, fin_col))
End With
End Sub
à noter que dans ces conditions les indices de tableau commencent à 1
A+
Re bonjour
C'est comme si on avait écrit
en utilisant With Sheets("Zones") (sans oublier le End With), on n'est pas obligé de répéter ce terme à chaque fois (mais il faut conserver le ".".
ça allège la lisibilité et l'écriture du code.
A+
With Sheets("Zones")
fin_lg = .Range("A" & .Rows.Count).End(xlUp).Row
fin_col = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
Tab_zones_contacts = Range(.Cells(2, 1), .Cells(fin_lg, fin_col))
End With
C'est comme si on avait écrit
fin_lg = Sheets("Zones").Range("A" & .Rows.Count).End(xlUp).Row
fin_col = Sheets("Zones").Cells(1, Sheets("Zones").Cells.Columns.Count).End(xlToLeft).Column
Tab_zones_contacts = Range(Sheets("Zones").Cells(2, 1),Sheets("Zones").Cells(fin_lg, fin_col))
en utilisant With Sheets("Zones") (sans oublier le End With), on n'est pas obligé de répéter ce terme à chaque fois (mais il faut conserver le ".".
ça allège la lisibilité et l'écriture du code.
A+