VBA : intégrer formule SI+RechercheV

Bonjour,

Novice en VBA, je bloque sur l’intégration d’une formule SI + Recherche V dans mon code VBA.

J’ai un fichier avec deux feuilles de calculs.

Dans la 1ère (« SUIVI ») , se trouve un tableau avec un nombre de ligne très variable (plusieurs milliers).

Dans la colonne D de ce tableau se trouve ma formule :

SI(C2="";"";RECHERCHEV(C2;'Base de données'!$C$4:$D$353;2;FAUX))

Elle permet selon la valeur qui se trouve en colonne C d’aller chercher la valeur correspondante dans la seconde Feuil (Base de données).

Cette formule fonctionne bien, mais je souhaite directement l’intégrer à mon code VBA.

Mes besoins :

Au déclenchement de mon code VBA, l’ensemble de la colonne D (à partir de D2) jusqu’à ce qu’il n’y ai plus de valeur en colonne C doit déclencher la RechercheV.

En navigant sur divers forums j’ai trouvé ce bout de code mais largement incomplet et dysfonctionnel ( il me remonte l’erreur suivant : « l’indice n’appartient pas à la sélection »).

Sheets("Suivi").Activate

Range("D2").Value = Application.WorksheetFunction.VLookup(Range("C2").Value, Sheets("Feuil2").Range("$C$4:$D$353"), 2, False)

Pour information:

Sheets"(Suivi) = Feuil5 de mon fichier

Sheets("Base de données") = Feuil2 de mon fichier

Merci d’avance pour votre aide !

Bonne journée

Emmanuel

Bonjour

Un essai à tester. Te convient-il ?

Bye

20classeur1-v.xlsm (22.62 Ko)

Bonjour gmb,

Merci beaucoup ça marche parfaitement.

Je vais encore abuser de ta gentillesse et de tes compétences.

J'ai essayé d'adapter ton code pour un besoin quasi similaire mais sans succès. Pourrais-tu l'adapter stp et éventuellement mettre des commentaires dans le code afin d'aiguiser ma compréhension. Je te transmet le fichier en PJ pour faciliter ta compréhension du besoin.

Le besoin :

Je souhaite faire la même chose pour la colonne F (Feuil "Suivi"), à savoir y faire apparaître l'heure théorique selon la valeur présente dans la colonne B (Mnémo SA).

La source est toujours la même, il s'agit de la Feuil Base de données (Feuil 1 dans le doc en PJ).

Pour cela, tu pourra prendre comme base la colonne E + F de la Feuil Base de données, comme base pour la rechercheV.

Autre sujet étroitement lié au précédent :

Tu vas rapidement le remarquer, dans la Feuil1(Base de données) il y a plusieurs "Référentiels" à savoir une liste de Mnémo SA avec en face une heure théorique. Au total il y a donc 3 référentiels S3 / S1 / SO.

Ma difficulté:

Mon traitement de données est mensuel (du 01 au 31). Sur cette liste de jours calendaire je suis susceptible d'appliquer différents référentiels, exemple:

  • S0 : Du 01 au 05
  • S1 : Du 06 au 16
  • S3 : Du 17 au 31

Sur une même date, il n'est possible d'appliquer qu'un seul et unique référentiel.

Plusieurs options qui me viennent à l'esprit :

1) Un formulaire qui s'ouvre au déclenchement de la macro avec en première colonne les 31 jours calendaires puis en seconde colonne des textbox à choix déroulant face à chaque date avec le choix du référentiel a appliquer.

2) La même logique que le formulaire mais directement sur une des feuils de calcul du fichier ; Un tableau avec deux colonnes, date puis choix du référentiel applicable.

Mes fragiles compétences en VBA étant ce qu'elles sont, je n'y arriverai pas sans un coup de pouce

Merci d'avance pour ton aide et ta patience.

Bonne journée et bon weekend !

Emmanuel

8bdd1.xlsx (192.61 Ko)
Rechercher des sujets similaires à "vba integrer formule recherchev"