Problème d'indice dans un tableau
Bonjour à tous.
Je suppose que mon erreur est due à mon manque de connaissances approfondies à propos des tableaux.
J'utilise un tableau à 2 dimensions avec 4 colonnes (option BASE 1).
J'ai réussi à exploiter toutes mes colonnes (comprendre les remplir et en restituer le contenu) mais lorsqu'un peu plus tard je souhaite utiliser un ubound de la 3 colonne de mon tableau, j'obtiens une erreur 9 "l'indice n'appartient pas à la selection".
J'ai essyé avec la colonne 4: même topo.
Par contre, ça fonctionne sur les colonnes 1 et 2.
Pourtant, quand je teste les entrées de mon tableau, j'ai bien des valeurs.
Si j'ai des valeurs, c'est que j'ai bien une Ubound.
'Bloc pour afficher les valeurs de la colonne 3 de mon tableau (liste de tous les compteurs pour lesquels il EXISTE un carnet)
i = 1
Do While TabSNcompteur(i, 3) <> ""
SheetReporting.Range("F" & i + 1).Value = TabSNcompteur(i, 3)
i = i + 1
Loop
SheetReporting.Range("F1").Value = "Liste des compteurs ayant un carnet"
SheetReporting.Columns.AutoFit
SheetReporting.Cells.HorizontalAlignment = xlCenter
'Bloc pour afficher les valeurs de la colonne 3 de mon tableau (liste de tous les carnets pour lesquels il EXISTE un compteur EXPORT des données à importer, quoi)
i = 1
Do While TabSNcompteur(i, 4) <> ""
SheetReporting.Range("G" & i + 1).Value = TabSNcompteur(i, 4)
i = i + 1
Loop
SheetReporting.Range("G1").Value = "Liste des carnets à mettre à jour"
SheetReporting.Columns.AutoFit
SheetReporting.Cells.HorizontalAlignment = xlCenter
'-------------------------------------------------------------------------------------------------------------------
'Recherche et ouverture des carnets métros pour lesquels il y a bien un compteur EXPORT SAP afin d'importer les données
'SAP dans les carnets métro
NbLineSheetReporting = SheetReporting.Range("F2").End(xlDown).Row
'ReDim Preserve TabSNcompteur(NbLineSheetReporting, 3) ' À tout hasard je Redim puisque j'ai une erreur plus bas... C'est seulement pour supprimer les entrées vides du tableau. Sinon, pas grave, je ferai une boucle pour n'afficher que les valeurs non vides
MsgBox TabSNcompteur(110, 3) 'POUR TEST : j'ai bien une valeur !!!
MsgBox TabSNcompteur(100, 4) 'POUR TEST : j'ai bien une valeur !!!
For i = 1 To UBound(TabSNcompteur, 4) 'Erreur 9 <----------------- ICI !!!!!!!!
'Je n'ai pas encore écrit mon code
NextSi quelqu'un a une idée...
Qui a dit que les tableaux c'était simple !
Quel merdier, oui ! (pardon pour le gros mot).
Merci d'avance pour vos contributions.
Bonjour,
Merci de joindre un fichier avec l'ensemble de la procédure VBA.
Cdlt.
Bonjour,
Par contre, ça fonctionne sur les colonnes 1 et 2.
Tu dois confondre colonnes et dimensions !
UBound te renvoie l'indice le plus élevé dans une dimension du tableau.
UBound(Tablo, 1)
UBound(Tablo, 2)
Si tu as deux dimensions, ça s'arrêtera là !
Les colonnes sont ta 2e dimension...
Bien le bonjour Messieurs qui avez bien voulu prêter l'oreille à ma complainte.
MFerrand ne seriez-vous pas une mère Teresa du VBA excel ?
Oui... J'ai confondu dimension et colonne.
Franchement, j'ai fait nuit blanche car je me suis penché sur les variables tableaux que je maîtrise mal (je débute) et j'ai lu dans un tuto qui leur était dédié, que c'était simple...
C'te blague !
Franchement, j'ai beaucoup de mal.
Mais bon, visiblement c'est le top de la rapidité...
Donc c'est pour ça que je me retrouvais avec un UBOUND = 4 qui correspond au nombre de me colonnes...
Merci MFerrand.
J'imagine qu'au vu du nombre de messages qui s'affiche sous votre avatar, il doit y avoir un paquet d'âmes en détresse qui M Faerrand...
Tu essaies d'aller trop vite !
Bon weekend