Mettre en code VBA

bonjour,

je viens vers vous pour trouver un peu aide.

je cherche à mettre en VBA ce type de code:

=SI(E19="PAMAC 50";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;4;FAUX);SI(E19="PAMAS G1";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;6;FAUX);SI(E19="HK 416 S";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;12;FAUX);SI(E19="HK 416 C";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;14;FAUX);SI(E19="ARMINUS";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;20;FAUX);SI(E19="FAMAS F1";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;8;FAUX);SI(E19="FAMAS INF";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;10;FAUX);SI(E19="FAMAS VALO";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;16;FAUX);SI(E19="EOTECH";RECHERCHEV(D19;'Armement cie'!$B$3:$Y$152;18;FAUX);"")))))))))

merci d'avance pour votre aide

cordialement

jb

Bonjour,

    Dim valeur$, colonne%
    valeur = Range("E19").Value
    Select Case valeur
        Case "PAMAC 50"
            colonne = 4
        Case "PAMAS G1"
            colonne = 6
        Case "HK 416 S"
            colonne = 12
        Case "HK 416 C"
            colonne = 14
        Case "ARMINUS"
            colonne = 20
        Case "FAMAS F1"
            colonne = 8
        Case "FAMAS INF"
            colonne = 10
        Case "FAMAS VALO"
            colonne = 16
        Case "EOTECH"
            colonne = 18
    End Select
    Range("A1") = Application.VLookup(valeur, Worksheets("Armement cie").Range("$B$3:$Y$152"), colonne, 0)

Bonjour,

Salut oyobrans

Comme seul le n° d'index de colonne varie, dans chaque RECHERCHEV, peut-être qu'en fournissant un fichier en support, on aurait pu proposer une version "épurée" de la formule ou une autre solution ?

Mais bon, ce que j'en dis ...

re,

merci pour vos réponses

je vous l'avoue je sèche

je vous joins un fichier très épuré , encore une fois merci à vous

très amicalement

jb

12essai.xlsm (489.44 Ko)

je vous l'avoue je sèche

Je ne sais pas si ça permettra de te réhydrater , mais essaie, en F19:
=INDEX(Tableau8[[PAMAC 50]:[Indispo HK 269]];EQUIV(D19;Tableau8[NOM];0);EQUIV(E19;Tableau8[[#En-têtes];[PAMAC 50]:[Indispo HK 269]];0))

mon but serait de transformer les formules dans le tableau excel dans le colonne F ( feuille bon arme auto) par une macro VBA global.

afin de permettre ultérieurement un changement dans cette dites colonne sans effacer la formule (comme actuellement).

j'espere ne pas être trop clair ( cela n'est pas gagné )

j'espere ne pas être trop clair ( cela n'est pas gagné )

Aaahh si, c'est gagné !!

Un tableau croisé dynamique, auquel tu as accolé un autre tableau (sans lien avec le précédent) et dans lequel tu voudrais remplacer les formules par "une macro globale", pour pouvoir remplacer le résultat de calculs par des valeurs que tu encodes) ... j'avoue ne rien comprendre !!

re,

le tableau croisé est un tableau de gestion qui n'est pas accessible à tous

le bon est accessible à tous.

lorsque tout est conforme la formule fonctionne parfaitement

mais lorsque j'ai un numéro inaccessible ( NTI,.....) il faudrait pouvoir rentrer manuellement un numéro.

si je laisse les formules comme aujourd'hui cela va les effacer donc je suis à la recherche de solution.

merci d'avance

Rechercher des sujets similaires à "mettre code vba"