Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 :
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 : Je trouve ce texte très clair. Où y voyez-vous du charabia ?​
ROGER2327
#2946
 

Discussions similaires

Réponses
7
Affichages
441
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…