[Catégorie modifiée VB6 --> VBA] Erreur d'exécution n° 5 [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
2
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
9 juillet 2010
-
Bonjour à tous,
Grand débutant en VBA, j'apprécie votre forum où j'apprends beaucoup de choses. Mais là, je bloque totalement sur quelques lignes qui me semblent très simples. Voir le code ci-dessous.
Je précise que j'obtiens, pour l'instruction A(E+18)= Left(...) (dernière ligne écrite) le message mortel :
Argument ou appel de procédure incorrect.
L'affectation en question étant dans une double boucle, je ne saurais dire à quel passage ça bloque. Mais j'ai le message très rapidement lors de l'exécution.Dernière précision : lors de l'exécution, M 20 et P 3.
Par avance merci pour votre aide.
L'algorithme :

Sub Texteparamodifies()
'
' Texteparamodifies Macro
Dim A() As String
Dim P As Integer: Dim M As Integer: Dim X As Integer: Dim S As Integer: Dim T As Integer: Dim F As Integer: Dim E As Integer
Sheets("param modifies").Select
M = Range("B2").Value
'M est le nombre de vues
P = Range("C2").Value
'P est le nombre de points de contrôle par vue après modification
S = 6 + M * (33 + 13 * P)
'S est l'indice maximum de A
ReDim A(S)
Range(Cells(5, 27), Cells(S, 27)).Select
Selection.Copy
Selection.ClearContents
Sheets("param originaux").Select
A(5) = Range("AA5").Value
A(6) = Range("AA6").Value
For I = 1 To M
E = 6 + (I - 1) * (33 + 13 * P)
For J = 1 To 17
A(E + J) = Range("AA" & E + J).Value
Next
X = Len(Range("AA" & E + 18).Value)
A(E + 18) = Left(Range("AA" & E + 18).Value, X - 1) & Range("G" & 19 * I - 9).Value

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
E est une lettre réservée pour désigner les puissances de 10.
Utilise des noms de variables plus explicites.
Commence par ça, je pense que cela résoudra ton problème.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
2
Date d'inscription
jeudi 8 juillet 2010
Statut
Membre
Dernière intervention
9 juillet 2010

Bonjour
Merci d'avoir pris le temps de lire et de répondre.
Je retiens la suggestion pour le E, mais l'erreur vient des indices de A qui sont faux. Le X de l'avant-dernière ligne est nul à un moment donné, ce qui entraîne évidemment une erreur dans l'instruction suivante.

Encore merci et toutes mes excuses pour n'avoir pas posté le message au bon endroit.