Salut atlonia,
- Cancel = True
destiné à court-circuiter le comportement standard d'une application. Un clic droit commande habituellement un menu contextuel... qui serait embêtant ici.
Essaye en mettant cette ligne en commentaire, c-à-d avec une apostrophe devant la ligne.
- iIdx - 1
pour être très schématique, Il y a les tableaux comme tData pour faire une "capture" d'écran" et les tData1() dont tu peux déterminer toi-même les indices voire les redimensionner en cours de route.
* tData : comme il n'y a pas de colonne ou ligne "0" dans Excel, le 1er élément est tData(1,1).
Quel que soit l'endroit de ta feuille où tu opères cette capture-écran, le 1er élément sera (1,1).
* tData1() : sauf si stipules en début de programme OPTION BASE 1, le 1er élément de ce tableau sera tData1(0,0).
Ici, je l'utilise comme tableau de résultat dont j'ignore au départ le nombre final d'éléments, donc tData1() = NULL
Je le REDIMensionne au besoin en PRESERVant les données déjà enregistrées (sans PRESERVE, tu effaces ces données lors de chaque redimensionnement).
iIdx = iIdx + 1 veut dire que je crée un premier index mais premier élément (0,0) donc je dois faire iIdx-1 lors de l'enregistrement.
Tu ne peux REDIMensionner que le dernier indice à DROITE de ces tableaux = Redim Preserve tData1(2,iIdx), 2 pour deux données par colonne (par exemple, hein!) = un tableau de 2 lignes et iIdx colonnes.
1er élément : tData1(0, iIdx -1 = 0)
2e élément : tData1(1, iIdx-1 = 0)
iIdx = iIdx + 1 -> iIdx = 2
Redim Preserve tData1(2, iIdx) car il y a maintenant 2 colonnes
1er élément : tData1(0, iIdx -1 = 1)
2e élément : tData1(1, iIdx - 1 = 1)
Présentation des données dans tData1()
1er 2e
TOTO0 TOTO1
TATA0 TATA1
Pour obtenir à l'écran...
1er TOTO0 TATA0
2e TOTO1 TATA1
... tu dois alors basculer tData1() à l'horizontale = WorksheetFunction.TRANSPOSE(tData1)
Est-ce plus clair ainsi? Rien de compliqué, en fait si tu as une certaine vision 3D de la chose...
A+