Menu

Etendre une formule sur toute une colonne

olivier - 17 juil. 2017 à 12:09 - Dernière réponse :  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



Afficher la suite 

4 réponses

Répondre au sujet
eriiic 21545 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - Modifié par eriiic le 17/07/2017 à 13:02
0
Utile
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
Commenter la réponse de eriiic
0
Utile
2
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.
eriiic 21545 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 26 avril 2018 Dernière intervention - 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
http://www.cjoint.com/c/GGrl4U1r3NE

eric
ok je vois ce que tu veux dire, c'est vrai que cq marchera aussi bien.
Je te remercie
Commenter la réponse de olivier