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

jpb974 2 Messages postés jeudi 8 juillet 2010Date d'inscription 9 juillet 2010 Dernière intervention - 8 juil. 2010 à 13:54 - Dernière réponse : jpb974 2 Messages postés jeudi 8 juillet 2010Date d'inscription 9 juillet 2010 Dernière intervention
- 9 juil. 2010 à 06:21
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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 8 juil. 2010 à 17:30
3
Merci
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Jack
jpb974 2 Messages postés jeudi 8 juillet 2010Date d'inscription 9 juillet 2010 Dernière intervention - 9 juil. 2010 à 06:21
0
Merci
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.
Commenter la réponse de jpb974

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.