Fonction find pour des valeurs monétaires
Fermé
Mabouille2016
Messages postés
3
Date d'inscription
vendredi 9 décembre 2016
Statut
Membre
Dernière intervention
10 décembre 2016
-
9 déc. 2016 à 21:33
Mabouille2016 - 13 déc. 2016 à 12:55
Mabouille2016 - 13 déc. 2016 à 12:55
A voir également:
- Fonction find pour des valeurs monétaires
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction filtre excel n'existe pas - Forum Excel
- Quand on visite cette page, des messages sont échangés entre le navigateur et le site web. des extraits des messages échangés lors de la première connexion sont reproduits ci-dessous. des valeurs ont été remplacées par des numéros. retrouvez chacune de ces valeurs. - Forum Réseaux sociaux
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
4 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
10 déc. 2016 à 00:43
10 déc. 2016 à 00:43
Bonjour et bienvenue,
Avec un fichier on pourrait tester notre réponse avant... Penses-y la prochaine fois.
xlValues porte mal son nom, il correspond plus à .Text (ce qui est affiché)
- si ce sont des valeurs saisies, essaie avec =xlFormulas :
Set c = Columns(3).Find(6, LookIn:=xlFormulas)
- si ce sont des formules, recherche la ligne avec equiv() :
lig = Application.Match(6, Columns(3), 0)
Mais pour une recherche multiple tu vas t'amuser à décaler les plages de recherche suscessives...
A ta place je mettrai en format virgule fixe le temps de la recherche et restaurerai le monétaire ensuite.
eric
Avec un fichier on pourrait tester notre réponse avant... Penses-y la prochaine fois.
xlValues porte mal son nom, il correspond plus à .Text (ce qui est affiché)
- si ce sont des valeurs saisies, essaie avec =xlFormulas :
Set c = Columns(3).Find(6, LookIn:=xlFormulas)
- si ce sont des formules, recherche la ligne avec equiv() :
lig = Application.Match(6, Columns(3), 0)
Mais pour une recherche multiple tu vas t'amuser à décaler les plages de recherche suscessives...
A ta place je mettrai en format virgule fixe le temps de la recherche et restaurerai le monétaire ensuite.
eric
Mabouille2016
Messages postés
3
Date d'inscription
vendredi 9 décembre 2016
Statut
Membre
Dernière intervention
10 décembre 2016
10 déc. 2016 à 01:48
10 déc. 2016 à 01:48
Bon, j'ai mis ma réponse en commentaire, je ne sais pas ce qui vaut mieux, aussi je la recopie ci-dessous:
Merci Eric,
Je vais essayer avec Formulas car ce sont toutes des valeurs saisies.
J'ai bricolé en attendant un truc plus bourrin mais qui marche, qui consiste à parcourir ligne par ligne avec Offset la colonnes des montants d'opérations de chaque banque jusqu'à ce qu'on trouve le Montant recherché, après on reprend le reste de la macro comme si Find avait marché.
OK c'est moins élégant que find mais ça va presque aussi vite Toutefois je vais pour le sport essayer Formulas et je reviendrai dire le résultat ici.
Cordialement
Merci Eric,
Je vais essayer avec Formulas car ce sont toutes des valeurs saisies.
J'ai bricolé en attendant un truc plus bourrin mais qui marche, qui consiste à parcourir ligne par ligne avec Offset la colonnes des montants d'opérations de chaque banque jusqu'à ce qu'on trouve le Montant recherché, après on reprend le reste de la macro comme si Find avait marché.
OK c'est moins élégant que find mais ça va presque aussi vite Toutefois je vais pour le sport essayer Formulas et je reviendrai dire le résultat ici.
Cordialement
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
10 déc. 2016 à 10:31
10 déc. 2016 à 10:31
bonjour Mabouille, Eric
la fonction Find boude avec les formats de nombres; pour fonctionner, il faut donc enlever les formats des nombre (source et cible) et de les remettre après... Je sais, c'est pas triste chez MS !
:-8
la macro de l'exemple ci joint avec du monétaire ( m^me punition avec des dates par ex)
la maquette:
https://mon-partage.fr/f/H7PmF9XW/
la fonction Find boude avec les formats de nombres; pour fonctionner, il faut donc enlever les formats des nombre (source et cible) et de les remettre après... Je sais, c'est pas triste chez MS !
:-8
la macro de l'exemple ci joint avec du monétaire ( m^me punition avec des dates par ex)
Option Explicit
'-----------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then
Target.NumberFormat = "general"
With Sheets(2).Range("C5:G14")
.NumberFormat = "General"
MsgBox .Find(Target, .Range("C5")).Address
.NumberFormat = "#,##0.00 $"
End With
Target.NumberFormat = "#,##0.00 $"
End If
la maquette:
https://mon-partage.fr/f/H7PmF9XW/
merci Michel, je n'ai pas essayé ça faute de temps, promis je viendrai rendre compte ici dans la semaine. Intuitivement je pense que ça devrait marcher, c'est probablement la question du format qui empêche find de finder !
Eric en utilisant formulas ça marchouille= ça donne le montant recherché mais plusieurs autres avec, par ex tu demandes tous les 100,00 tu les as mais tu as aussi 1000,00 et 1100.00 et même des montants qui n'ont rien à voir.
Je vais essayer le truc de Michel, pour la gloire et contribuer à faire avancer le schmilblick "find", parce que sinon ma solution "bourrin" (voir mon post du 10/12) a marché, j'ai ma macro.
Merci les gars
Eric en utilisant formulas ça marchouille= ça donne le montant recherché mais plusieurs autres avec, par ex tu demandes tous les 100,00 tu les as mais tu as aussi 1000,00 et 1100.00 et même des montants qui n'ont rien à voir.
Je vais essayer le truc de Michel, pour la gloire et contribuer à faire avancer le schmilblick "find", parce que sinon ma solution "bourrin" (voir mon post du 10/12) a marché, j'ai ma macro.
Merci les gars
10 déc. 2016 à 01:45
Je vais essayer avec Formulas car ce sont toutes des valeurs saisies.
J'ai bricolé en attendant un truc plus bourrin mais qui marche, qui consiste à parcourir ligne par ligne avec Offset la colonnes des montants d'opérations de chaque banque jusqu'à ce qu'on trouve le Montant recherché, après on reprend le reste de la macro comme si Find avait marché.
OK c'est moins élégant que find mais ça va presque aussi vite Toutefois je vais pour le sport essayer Formulas et je reviendrai dire le résultat ici.
Cordialement