[VBA] Syntaxe objet dans formule R1C1 Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
j
julking92
Membre habitué
Membre habitué
Messages : 132
Inscrit le : 12 février 2015
Version d'Excel : 2010

Message par julking92 » 11 juin 2015, 17:23

Bonjour à tous,

J'aimerais comparer deux feuilles d'un même fichier Excel, une que j'appelle new_sh et l'autre old_sh et faire apparaître, à l'aide de la fonction INDEX + EQUIV, certaines caractéristiques.
Le problème est que je ne sais pas comment inclure un objet dans une formule R1C1.

Mon code ci-dessous :

'dimmensionnement du nom de ma feuille comme une chaîne de caractères
Dim old_sh as String

'l'utilisateur doit renseigner quelle est la la feuille "old" à comparer avec des valeurs plus récentes déjà présentes dans la feuille de sytnhèse
old_sh = InputBox("Saisissez maintenant le nom de la feuille la plus ancienne à analyser")

'Formule pour trouver la valeur cherché dans la feuille old_sheet
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,'old_sh'!C[2],1,FALSE)),""ajoutée"",""ok"")"


C'est le old_sheet que je ne sais pas écrire dans une formule de type R1C1 en fait. Comment gère-t-on les !, les ', que l'on trouve habituellement en faisant des formules "à la main" ?
Est-ce qu'il faut le dimensionner en tant que String ? Ou comme une Worskheets ? Auquel cas je ne peux pas demander à l'utilisateur de le renseigner en utilisant une InputBox..

Merci d'avance de votre précieuse aide :)
Modifié en dernier par julking92 le 11 juin 2015, 17:51, modifié 1 fois.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 11 juin 2015, 17:40

Bonjour,

A mon avis, tu as déjà compris le principe ... :wink:

Une fois que tu as défini toutes les variables comme String ... dans la rédaction de ta formule, il ne te reste qu'à utiliser la concaténation entre les différents éléments avec le sigle & ...
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
j
julking92
Membre habitué
Membre habitué
Messages : 132
Inscrit le : 12 février 2015
Version d'Excel : 2010

Message par julking92 » 11 juin 2015, 17:48

Merci de ton aide James.

J'ai peut-être compris le principe mais je n'arrive pas à l'appliquer malheureusement ...

J'ai tout essayé :
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,old_sh & ""C[2],1"",FALSE)),""ajoutée"",""ok"")"
Ou
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,'old_sh'! & ""C[2],1"",FALSE)),""ajoutée"",""ok"")"
Ou
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,'old_sh'! & C[2],1,FALSE)),""ajoutée"",""ok"")"
Ou
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,""old_sh"" & ""C[2],1"",FALSE)),""ajoutée"",""ok"")"
(il doit y avoir de très vilaines formulations là-dedans :mrgreen: )
Mais rien ne fonctionne...
j
julking92
Membre habitué
Membre habitué
Messages : 132
Inscrit le : 12 février 2015
Version d'Excel : 2010

Message par julking92 » 11 juin 2015, 18:05

Et même comme ça :
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1, & old_sh & ""C[2],1"",FALSE)),""ajoutée"",""ok"")"
Mais toujours rien :(

Une idée svp ?
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 11 juin 2015, 18:20

Bonjour

Bonjour James007


Testes
 Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(ISERROR(VLOOKUP(RC1,'" & old_sh & "'!C[2],1,FALSE)),""ajoutée"",""ok"")"
j
julking92
Membre habitué
Membre habitué
Messages : 132
Inscrit le : 12 février 2015
Version d'Excel : 2010

Message par julking92 » 11 juin 2015, 18:22

Hello, j'avais trouvé tout seul promis ! :)

Merci en tout cas pour votre aide, je note ce sujet comme résolu.

Bonne fin de journée.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 421
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 12 juin 2015, 06:41

Bonjour,

Félicitations pour ta maitrise de la concaténation !!! :wink:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message