Erreur 1004- Débutant

Bonjour,

Je suis débutant sur VBA.
J'ai un petit soucis avec une simple boucle for

La fonction ConvertCol tourne bien, elle n'est pas la source du problème.

image

Le debug m'affiche une erreur d'objet (1004) , je ne vois vraiment pas ce qui coince.

Merci d'avance !

Bonjour

A quoi servent les doubles quotes "" dans la sélection de la cellule: Range("P" & i & "")

ceci ne suffit-il pas: Range("P" & i)

Cdlt

Bonjour,

lors de l'erreur, en positionnant le curseur de votre souris sur les variables de la ligne en jaune, les variables i et n sont égales à quoi ?

@ bientôt

LouReeD

Bonjour,

Yes ca marche également et c'est plus léger, mais l'erreur persiste.

Je pense que c'est le .formula qu'il n'apprécie pas, mais je n'ai pas trouvé mieux jusqu'à présent.

Bonjour LouReeD,

Il m'affiche i=3 et n=327 ( valeur souhaité).
Il affiche les valeurs juste avant de bloquer ? Ca voudrait dire que ca coince dés la première itération du coup.

J'ai l'impression que c'est le " & n & " qui bloque, quand je le remplace par un nombre ca marche

ConvertCol c'est quoi ?

Si c'est une fonction personnelle regardez si elle est conçue pour aller au delà de "Z" car i=3 + 24 = 27 donc AA...

@ bientôt

LouReeD

Merci pour votre retour !

image

Elle est prévu pour les colonne à 2 lettres, je l'ai déjà fait tourné pour un autre programme, elle ne pose pas de soucis...
Et finalement en replaçant le " & n &" par une valeur numérique ca ne marche pas.

Essayez en mettant les $ partout ou bien en les enlevant partout... Sans conviction... Et sans fichier...

@ bientôt

LouReeD

Bonjour,

elle tourne peut-être très bien mais il y a beaucoup plus simple :

Sub test()
    MsgBox convertCol(27)
End Sub

Function convertCol(numCol As Long) As String
    convertCol = Split(Columns(numCol).Address(False, False), ":")(0)
End Function

Pour le reste je n'ai pas envie de m'arracher les yeux à essayer de lire tes captures.
Tu dois coller le texte du code en utilisant l'outil </>,
ou/et mieux : déposer un fichier réduit au minimum pour le pb et anonymisé.
eric

Merci, mais ca coince encore...
Quand je ne met pas le "=" devant la formule il n'y a pas de soucis, donc je peux l'exécuter et rajouter à la main sur la feuille.

Je met le code plus lisiblement ici, si jamais...
Sub Macro()
n = Range("A" & Rows.Count).End(xlUp).Row
For i = 3 To 42
Range("P" & i & "").Formula = "=COVARIANCE.P(AA2:AA" & n & ";" & ConvertCol(27 + increm2) & "2:" & ConvertCol(27 + increm2) & "" & n & ")/VAR.P(AA2:AA" & n & ")"
Range("P" & i & "").Value = Range("P" & i & "").Value
Next

End Sub

Re,

tu as & "" en trop dans & "" & n & , tu fermes les " " à tort.
J'ai enlevé aussi ceux qui servent à rien

Essaie avec :
Range("P" & i).Formula = "=COVARIANCE.P(AA2:AA" & n & ";" & convertCol(27 + increm2) & "2:" & convertCol(27 + increm2) & n & ")/VAR.P(AA2:AA" & n & ")"

Bonsoir,

ce surplus & "" n'existe pas sur la première image... Alors ce doit être une erreur de copier/coller, non ?

@ bientôt

LouReeD

Sub Macro()
n = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To 42
Range("P" & i).Formula = "=COVARIANCE.P(AA2:AA" & n & ";" & convertCol(27 + i) & "2:" & convertCol(27 + i) & n & ")/VAR.P(AA2:AA" & n & ")"
Range("P" & i & "").Value = Range("P" & i & "").Value
Range("P1:P42").NumberFormat = "0.00%"
Next
End Sub

Bonsoir,

Merci pour vos réponses

J'ai copier/coller votre formule mais ca ne marche toujours pas...
Toujours un problème au niveau de la 4 éme ligne.

Bonsoir,

aller, stop ! >Fournissez un fichier avec vos données et votre code, ce sera plus simple !

@ bientôt

LouReeD

828-03.xlsm (285.10 Ko)

Le voici !

Tu trouveras l'anomalie dans les modules 8, et la fonction convertCol en module 9

Merci beaucoup de ton implication

Salut les matheux,

si je traduis bien ce que je lis sur la Toile,, ce serait le ";" entre les Range à transformer en ",".
En tout cas, sauf résultats que je suis incapable de vérifier, plus d'erreur d'exécution!

Range("P" & i).Formula = "=COVARIANCE.P(AA2:AA" & n & "," & convertCol(27 + i) & "2:" & convertCol(27 + i) & n & ")/VAR.P(AA2:AA" & n & ")"


A+

Edit : plus les erreurs de guillemets qu'apprécie Lapin..

    Range("P" & i).Value = Range("P" & i).Value

Bonsoir,

essayez ceci :
Range("P" & i).FormulaLocal = "=COVARIANCE.PEARSON(AA2:AA" & n & ";" & convertCol(27 + i) & "2:" & convertCol(27 + i) & n & ")/VAR.P(AA2:AA" & n & ")"

@ bientôt

LouReeD

Voilà j'arrive après la bataille ! en fait ma solution correspond à celle de Curulis57 ! Sauf que j'utilise les fonctions "française" avec le ";" avec formula local...
Alors qu'avec formula il faut sious VBA écrire en anglais donc sans le Pearson mais juste le P et avec la virgule au lieu du point virgule.

Là où je me pose une question c'est que VAR.P c'est en français alors qu'en anglais c'est VARP, ici avec Var.P sous Excel cela devient VAR.P.N !

@ bientôt

LouReeD

Rechercher des sujets similaires à "erreur 1004 debutant"