Signaler

Etendre une formule sur toute une colonne

Posez votre question olivier - Dernière réponse le 17 juil. 2017 à 14:06 par olivier
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



Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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 21179Messages postés mardi 11 septembre 2007Date d'inscription ContributeurStatut 18 novembre 2017 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
Répondre
olivier- 17 juil. 2017 à 14:06
ok je vois ce que tu veux dire, c'est vrai que cq marchera aussi bien.
Je te remercie
Répondre
Donnez votre avis

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.

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

Vous n'êtes pas encore membre ?

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