[RESOLU] Formule recherche V en VBA + if et une boucle.

biker

XLDnaute Occasionnel
Bonjour;

Je bloque sur une formule?
Le probleme soit j'ai du me tromper en l'ecrivant ou il me semble quand je regarde le resultat il me marque resultat volatile.


Qu'est ce qu'un resultat volatile?
Est- ceci qui empeche ma formule de fonctionner ou tout simplement une erreur de ma part en l'ecrivant.


Merci par avance de vos reponses.
 

Pièces jointes

  • Essai.xls
    911 KB · Affichages: 71
  • Essai.xls
    911 KB · Affichages: 73
  • Essai.xls
    911 KB · Affichages: 71
Dernière édition:

biker

XLDnaute Occasionnel
Re : Probleme de formule ?

Bonjour;

C'est ca ; votre formule marche bien mais par contre dans les cellules A15 a A19 ou je devrais avoir une cellule vide car cela ne remplit pas la condition; j'ai un resultat d'erreur #N/A

A quoi sert le ET dans ma formule?

Merci
 

JHA

XLDnaute Barbatruc
Re : Probleme de formule ?

Bonjour à tous,

Je ne sais pas ce que viennent faire les cellules "A15:A19" dans cette formule car on parle de "F15:F19" par contre pour gérer le message d'erreur, tu peux rajouter cela, si problème annexe un bout de fichier.

sierreur(SI(ET(F19="D";AUJOURDHUI()-K19>0);AUJOURDHUI()-K19 & " jours";SI(ET(F19="C";RECHERCHEV(B19;Ligne;4)>K19); RECHERCHEV(B19;Ligne;4)-K19;""));"")

JHA
 

biker

XLDnaute Occasionnel
Re : Probleme de formule ?

Bonjour à tous,

Je ne sais pas ce que viennent faire les cellules "A15:A19" dans cette formule car on parle de "F15:F19" par contre pour gérer le message d'erreur, tu peux rajouter cela, si problème annexe un bout de fichier.

sierreur(SI(ET(F19="D";AUJOURDHUI()-K19>0);AUJOURDHUI()-K19 & " jours";SI(ET(F19="C";RECHERCHEV(B19;Ligne;4)>K19); RECHERCHEV(B19;Ligne;4)-K19;""));"")

JHA



Bonjour;

Les celllules A15:A19 sont celles qui recoivent le resultat de cette formules.
 

biker

XLDnaute Occasionnel
Re : Probleme de formule ?

JHA je te remercie pour ta formule car elle fonctionne parfaitement mais je me suis apercu que cela alourdissait mon fichier excel.

Par ce faite j'ai decidé d'essayer de faire cela par vba afin de reduire en capacité de mon fichier ( car ce n'est qu'une partie de mon fichier)

Par contre j'ai reussi quelque formule en vba mais je reste bloqué avec le recherche V.

Si a l'occasion quelqu'un pourrait me donner un coup de main je vous en remercie par avance.

Toutes les informations sont dans le module7 et sur la feuille1.






MERCI
 

Pièces jointes

  • Compteur&Date - Essai.xls
    666 KB · Affichages: 48
  • Compteur&Date - Essai.xls
    666 KB · Affichages: 55
  • Compteur&Date - Essai.xls
    666 KB · Affichages: 58

Vorens

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Hello Biker,


On peut utiliser le find dans vba avec l'exemple ci-dessous.

Code:
Set LigneTrouvee = Sheets("Feuil1").Range("A1").EntireColumn.Find("trucquetucherche", lookat:=xlWhole)

Laligne = LigneTrouvee.Row

Tu obtiendra le numéro de la ligne ou se trouve l’élément recherché.

Ensuite, il te suffis de récupérer les informations des colonnes qui t’intéresse par la commande ci-dessous.

Code:
Valeur1 = Sheets("Feuil1").Range("B" & Laligne).Value

Si ton tableau et tjrs le même est pas trop grand tu peux hardcodé les colonnes en dupliquant la ligne ci-dessous en changeant le la lettre de la colonne. ou alors on peut rendre la procédure générique avec une boucle for sur le nombre de colonne mais sa si t'en a besoin tu me dis. Vais pas le faire si sa sers a rien :)

En espérant que sa puisse t'aidé...

hésite pas si t'as besoin de précision,

Meilleures salutations
 

biker

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Bonjour Vorens;

Tu m'excuses mais je n'ai pas tout compris sur ta procedure.
Si tu avais un exemple ou prendre mon fichier pour me faire voir cela serait tres genereux de ta part.

Je te remerci
 

Legolas

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Bonjour biker,

La formule RechercheV est remplacée par VLookup en VBA (même principe de fonctionnement).
Ne pas oublier de déclarer ta plage de recherche.
Je te conseille de faire un tour dans l'aide VBA...

A+
 

biker

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Bonjour biker,

La formule RechercheV est remplacée par VLookup en VBA (même principe de fonctionnement).
Ne pas oublier de déclarer ta plage de recherche.
Je te conseille de faire un tour dans l'aide VBA...

A+



Bonjour;


J'avais deja essayer cette possibiliter mais je me trouve confronter a un probleme que je ne sais resoudre.
Voir fichier joint.


Merci
 

Pièces jointes

  • Compteur&Date - Essai.xls
    671.5 KB · Affichages: 62
  • Compteur&Date - Essai.xls
    671.5 KB · Affichages: 58
  • Compteur&Date - Essai.xls
    671.5 KB · Affichages: 61

Legolas

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Re,

Je ne comprends pas ce que tu cherches dans le VLookup.
Par contre, pour ça marche, il te faut mettre :
Application.VLookup(valeur_cherchée, plage_de_recherche, colonne_de_la_valeur_de_la_plage, faux)

Je pense qu'il faut que la valeur cherchée soit unique dans ta plage, sinon il ne prendra que la première valeur.
Si la valeur cherchée n'existe pas dans la plage je crois que ça fait buger la macro.

Pour éviter ce problème, tu peux faire un test sur le nombre de fois qu'il trouve la valeur cherchée dans la plage et ne pas exécuter la ligne VLookup si ce nombre est nul.

J'espère être clair. (Sinon ce sera lundi ^^)

A+
 

biker

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

re;

En gros voici la condition que je cherche a faire:
Si (i,F)="C" et RECHERCHEV((i,B);Feuil2!B3:E100;4)>(i,K) et RECHERCHEV((i,B);Feuil2!B3:E100;4)<(i,K) alors (i,A)= "a" & (i,L)- RECHERCHEV((i,B);Feuil2!B3:E100;4) & " heures"

F , B , K , L c'est la colonne en feuille1 (il manque cells (i,F) etc.....) mais c'etait pour faire une synthese

Tout cela en effectuant une boucle avec i




A+
 
Dernière édition:

biker

XLDnaute Occasionnel
Re : Formule recherche V en VBA + if et une boucle.

Bonjour a tous,

A titre d'info j'ai reussi a trouver la reponse:

pour ceux que ça intéresse :

If .Cells(i, 6) = "C" Then
If Application.Vlookup(.Cells(i, 2), Ws2.Range("B3:E100"), 4, False) > .Cells(i, 11) And Application.Vlookup(.Cells(i, 2), Ws2.Range("B3:E100"), 4, False) < .Cells(i, 12) Then
.Cells(i, 1) = "a " & CStr(.Cells(i, 12) - Application.Vlookup(.Cells(i, 2), Ws2.Range("B3:E100"), 4, False)) & " heures"
End If
End If


Merci legolas
 

Discussions similaires

Réponses
1
Affichages
396

Statistiques des forums

Discussions
312 199
Messages
2 086 159
Membres
103 145
dernier inscrit
lea.