Etendre une formule sur toute une colonne

Fermé
olivier - 17 juil. 2017 à 12:09
 olivier - 17 juil. 2017 à 14:06
Bonjour,

je suis debutant sur VBA et je n ai pas encore vraiment la bonne logique.
je pense avoir deux problemes:
utiliser une formule qui repondra a mon probleme
etendre cette formule sur toute une colonne.

pour l instant j ai une colonne avec des references et je dois affecter chaque reference a une target.
jusqu a present j utilisais des filtres et inscrivais ma target a cote de chaque reference.
j aimerai rendre cela automatique et sans utiliser de filtre.
Alors j ai imaginer une formule qui fonctionne mais qui ne peut pas etre utilser en macro.


=IF(R2="50060494",IF(L2>0.4, "Off Target", IF(L2<0.4, "On Target")),IF(R2="50060497",IF(L2>0.2, "Off Target", IF(L2<0.2, "On Target")),IF(R2="50065065",IF(L2>0.5, "Off Target", IF(L2<0.5, "On Target")),IF(R2="50060525",IF(L2>1, "Off Target", IF(L2<1, "On Target")),IF(K2>1, "Off Target", IF(K2<1, "On Target"))))))

sur la colonne R:la reference
et sur la colonne selectionne j aimerai avoir la target.
jai essaye de faire une macro avec cette formule mais sans reussite...



Sub Macro6()
'
' Macro6 Macro
'

'
ActiveCell.FormulaR1C1 = _
"=IF(RC[-6]=""50060494"",IF(RC[-12]>0.4, ""Off Target"", IF(RC[-12]<0.4, ""On Target"")),IF(RC[-6]=""50060497"",IF(RC[-12]>0.2, ""Off Target"", IF(RC[-12]<0.2, ""On Target"")),IF(RC[-6]=""50065065"",IF(RC[-12]>0.5, ""Off Target"", IF(RC[-12]<0.5, ""On Target"")),IF(RC[-6]=""50060525"",IF(RC[-12]>1, ""Off Target"", IF(RC[-12]<1, ""On Target"")),IF(RC[-13]>1, ""Off Tar" & _
"F(RC[-13]<1, ""On Target""))))))"
Range("X2").Select
Selection.AutoFill Destination:=Range("X2:X23939")
Range("X2:X23939").Select
End Sub


j ai ce message d erreur:

Run-time error'1004': Application-defined or object-dedined error



A voir également:

2 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
Modifié le 17 juil. 2017 à 13:02
Bonjour,

pourquoi tu ne la mets pas directement sur la feuille alors ?
En mettant ta BDD en Tableau (ruban Insertion) elle s'ajoutera à chaque nouvelle ligne.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Bonjour Eric,

Ma base de donnees en tableau? je ne comprends pas bien ce que ca peut changer?

jaimerai faire un programme vba du style:

si le code dans la case de la colonne R est 1 alors IF(L2>0.4, "Off Target", IF(L2<0.4, "On Target").

si le code dans la case de la colonne R est 2 alors IF(L2>0.2, "Off Target", IF(L2<0.2, "On Target").

etc pour toutes les references de ma base de donnees.

jessaye de faire une macro car ce travail doit etre fait avec une nouvelle base de donnee chaque mois.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
17 juil. 2017 à 13:58
Ma base de donnees en tableau? je ne comprends pas bien ce que ca peut changer?
Tu aurais la réponse en testant non ?

jessaye de faire une macro car ce travail doit etre fait avec une nouvelle base de donnee chaque mois.
je pense que c'est plus simple de coller tes nouvelles données dans une feuille préparée avec la formule en première ligne, que tu étends (ou pas si tu l'as mis en Tableau) avec un double-clic sur la poignée de recopie.
Jusque là, si c'est pour gagner un simple-clic à la place d'un (éventuel) double je ne vois pas l'intérêt de s’embêter avec une macro.

Exemple : copier H2:I4 et coller en A2
https://www.cjoint.com/c/GGrl4U1r3NE

eric
0
ok je vois ce que tu veux dire, c'est vrai que cq marchera aussi bien.
Je te remercie
0