Problème de remplissage d'un tableau deux D
Résolu/Fermé
reno421
Messages postés
41
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015
-
Modifié par pijaku le 24/02/2015 à 10:29
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015 - 27 févr. 2015 à 13:47
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015 - 27 févr. 2015 à 13:47
A voir également:
- Problème de remplissage d'un tableau deux D
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Deux comptes whatsapp - Guide
- Tableau word - Guide
- Le fichier contient un tableau présentant un extrait des livres les plus prêtés à paris en 2016. filtrez le tableau pour ne faire apparaître que les bandes dessinées ado. puis filtrez le tableau pour ne faire apparaître que celles dont l'auteur est zep. quel est le titre de la bande dessinée ado de zep qui a été la plus prêtée d'après ce tableau ? ✓ - Forum Windows 10
3 réponses
reno421
Messages postés
41
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015
24 févr. 2015 à 09:13
24 févr. 2015 à 09:13
au fait, le 0 est en réalité un J
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+
reno421
Messages postés
41
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015
26 févr. 2015 à 13:35
26 févr. 2015 à 13:35
Waouw, la, tu m'en bouches un coin, c'est hyper rapide comme solution. Tu es balaises.
Peux-tu, juste, SPV, m'expliquer car je ne conprends pas les . que tu mets devant Cells et Range.
D'avance merci.
Au fait, désolé de t'avoir répondu si tard
Peux-tu, juste, SPV, m'expliquer car je ne conprends pas les . que tu mets devant Cells et Range.
D'avance merci.
Au fait, désolé de t'avoir répondu si tard
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+
reno421
Messages postés
41
Date d'inscription
vendredi 30 janvier 2015
Statut
Membre
Dernière intervention
16 septembre 2015
27 févr. 2015 à 13:47
27 févr. 2015 à 13:47
Super, merci pour l'explication. Par contre, d'après ce que je vois, pour que ça fonctionne, les tableaux doivent être de type variant, ce qui prend plus de place mais pas grave dans mon cas