Indice pas dans la sélection

Rootdown

XLDnaute Junior
Bonjour à tous,
j'essaye d'optimiser les calculs d'un de mes travaux en mettant en pratique les informations que j'ai trouvé sur Ce lien n'existe plus.

je voulais utiliser la technique des tableaux intermédiaires.

Une partie des données feuille 1 colonne a, l'autre partie feuille 2 colonne a,
et a la sélection de la feuille 1 (worksheets_activate), les valeurs des deux colonnes se multiplient dans un tableau intermédiaire que je colle en colonne b de la feuille 1.
Et toujours la même erreur : indice pas dans la sélection.
Je met un document joint.
Je vois pas ce qui bloque.
Merci de votre aide.
 

Pièces jointes

  • test.zip
    7 KB · Affichages: 31
  • test.zip
    7 KB · Affichages: 25
  • test.zip
    7 KB · Affichages: 27

pierrejean

XLDnaute Barbatruc
Re : Indice pas dans la sélection

bonjour Rootdown

Voici ton fichier avec macro qui tourne

Je te suggere de bien etudier les tableaux avant de te lancer dans ce genre d'exercice
 

Pièces jointes

  • Rootdown_test.zip
    9.6 KB · Affichages: 17

Rootdown

XLDnaute Junior
Re : Indice pas dans la sélection

Merci PierreJean,
c'est vrai que c'est la première fois que je l'utilise et ca me paraissait simple sur le site que je précise dans mon post ci dessus.

Code:
Option Base 1
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
X = 10
Dim Tabl1
Dim Tabl2
Dim Tabl3()
ReDim Tabl3(X, 1)
Dim I As Integer

'tableau intermediaire Nombre
Tabl1 = Worksheets("Feuil1").Range("A2:A" & X).Value
'tableau intermediaire Diviseur
Tabl2 = Worksheets("Feuil2").Range("A2:A" & X).Value

For I = 1 To X - 1
   If Tabl2(I, 1) <> "" Then Tabl3(I, 1) = Tabl1(I, 1) / Tabl2(I, 1)
Next I

Worksheets("Feuil1").Range("B2:B" & X).Value = Tabl3
Application.ScreenUpdating = True
End Sub

En fait il me fallait préciser la taille du tableau 3 ?
Par contre le option base 1, ca correspond a quoi ?
j'ai trouvé cette définition :
C'est l'instruction utilisée au niveau module pour déclarer la limite inférieure par défaut des indices d'un tableau. Sans déclaration d'option de base, tous les tableaux sont basés à une limite inférieure 0 (premier indice dans le tableau). On écrira soit OPTION BASE 0 soit OPTION BASE 1.

Mais dans les faits, l'option base 0 étant celle par défaut, seul l'affichage de l'option base 1 est éventuellement intéressante. Elle est cependant rarement mise en place.
Je dois dire que c'est du charabia. La limite inférieur de mon tableau n'est pas 0 ?
Encore merci.
 

ROGER2327

XLDnaute Barbatruc
Re : Indice pas dans la sélection

Bonjour Rootdown, pierrejean
Une version permettant de ne pas tenir compte de la valeur du paramètre OptionBase en déclarant explicitement les indices limites du tableau :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Activate()
Dim x&, i&, Tabl1, Tabl2, Tabl3
   Application.ScreenUpdating = False
   x = 9
   Tabl1 = Worksheets("Feuil1").Range("A2:A" & x).Value
   Tabl2 = Worksheets("Feuil2").Range("A2:A" & x).Value
   ReDim Tabl3([B][COLOR="Red"]1 To x - 1[/COLOR][/B], [B][COLOR="Red"]1 To 1[/COLOR][/B])
   For i = 1 To x - 1
      If Tabl2(i, 1) <> 0 And Not IsEmpty(Tabl1(i, 1)) Then Tabl3(i, 1) = Tabl1(i, 1) / Tabl2(i, 1)
   Next i
   Worksheets("Feuil1").Range("B2:B" & x).Value = Tabl3
   Application.ScreenUpdating = True
End Sub[/B][/COLOR]
J'ai ajouté un contrôle des valeurs qui permet d'éviter le traitement des cellules vides de Worksheets("Feuil1").Range("A2:A" & x) et une éventuelle division par zéro si par hasard la valeur zéro se trouvait dans Worksheets("Feuil2").Range("A2:A" & x).

À propos de ceci :
C'est l'instruction utilisée au niveau module pour déclarer la limite inférieure par défaut des indices d'un tableau. Sans déclaration d'option de base, tous les tableaux sont basés à une limite inférieure 0 (premier indice dans le tableau). On écrira soit OPTION BASE 0 soit OPTION BASE 1.

Mais dans les faits, l'option base 0 étant celle par défaut, seul l'affichage de l'option base 1 est éventuellement intéressante. Elle est cependant rarement mise en place.
Je trouve ce texte très clair. Où y voyez-vous du charabia ?​
ROGER2327
#2946
 

Discussions similaires

Réponses
15
Affichages
850
Compte Supprimé 979
C
Réponses
3
Affichages
269

Statistiques des forums

Discussions
312 492
Messages
2 088 895
Membres
103 982
dernier inscrit
krakencolas