Macro de recherche d'une valeur proche

Sang1

XLDnaute Junior
Bonjour à tous,

Ayant peu d'expérience en VBA, j'ai du mal à ne partir de rien, je sollicite donc votre aide !

Je dispose d'un fichier dans lequel se trouve des tableaux de données de mesures constitués comme ceci : pour une condition d'expérience donnée (portant sur une tension), je dispose d'une puissance débitée et d'un temps de décharge correspondant.

Dans un autre fichier, je calcule un besoin en puissance débitée, et j'aimerai qu'une macro trouve dans mon fichier de données le temps de décharge correspondant si je débite effectivement cette puissance, sachant qu'il faut chercher la valeur dans la bonne colonne correspondant à la tension appliquée lors de ma décharge.

J'espere avoir été clair ^^'

Je vous joint un fichier excel comme exemple.

Merci d'avance !
 

Pièces jointes

  • Exemple.xls
    13.5 KB · Affichages: 76
  • Exemple.xls
    13.5 KB · Affichages: 93
  • Exemple.xls
    13.5 KB · Affichages: 90

job75

XLDnaute Barbatruc
Re : Macro de recherche d'une valeur proche

Bonjour Sang1,

Il faut en effet que le fichier de données soit ouvert pour que la fonction donne un résultat.

Je ne vois pas d'autre solution que d'ouvrir ce fichier manuellement ou par macro. En effet une fonction ne peut ouvrir ni fermer un fichier.

A+
 

Sang1

XLDnaute Junior
Re : Macro de recherche d'une valeur proche

Up !
Bonjour tout le monde.

J'ai un problème un peu "bizarre". Les fichiers que j'ai crée grâce à l'aide de job75 fonctionnent parfaitement, mais lorsque que je les transfert sur les postes de mes collègues, la fonction ne marche plus.

Pourtant, j'ai bien veiller à enregistrer tout les fichiers dans le meme répertoire, à donner les droits, et à ouvrir mon fichier "source" en premier.
Nous utilisons la version 11 d'Excel 2003.

Le niveau de sécurité des Macros est basé sur Medium, et elles sont bien enclanchées au démarage. Les codes VBA sont bien en place. La fonction est accessible depuis le menu fonction, par contre, elle ne détecte pas le type de variable qu'il lui faut, et du coup, elle me retourne un message d'erreur : les valeurs rentrées ne sont pas du bon type. Pourtant, elles le sont...

Une piste de solution ?
 

job75

XLDnaute Barbatruc
Re : Macro de recherche d'une valeur proche

Bonjour Sang1,

Il y a peut-être des références VBA non cochées sur ces ordi.

A tout hasard, remplacer :

Code:
col = Application.Match(V, .[2:2], 0) + 1

par :

Code:
col = Application.Match(V, .Range("2:2"), 0) + 1

A+
 

Sang1

XLDnaute Junior
Re : Macro de recherche d'une valeur proche

J'ai trouvé le problème..

Il est d'une betise...

Sur mon pc, le séparateur etait la ,
sur le leur, c'etait le .

Allez savoir pourquoi, étant donné que tous les PC de la boite son censé etre configurés pareils, et qu'ils sont tous en anglais.

Parfois, l'informatique est étrange ^^
 

job75

XLDnaute Barbatruc
Re : Macro de recherche d'une valeur proche

Re,

Je ne comprends pas très bien.

Le séparateur décimal choisi n'a aucune importance dans la fonction, pourquoi y avait-il un problème ?

A+
 
Dernière édition:

Sang1

XLDnaute Junior
Re : Macro de recherche d'une valeur proche

Pas dans le code, mais dans l'utilisation de la fonction, mon fichier ne marchait plus, puisque lorsque que le séparateur n'était pas celui pris en compte par le logiciel, le fichier considérait la valeur numérique comme une chaine de caractere.

Seulement, il ya des postes ou ce probleme n'est pas le seul, l'utilisation de la fonction ne marche pas sur ces postes... La fonction a l'air de ne pas connaitre le type de données qu'on doit lui rentrer. Elle retourne une erreur de type #VALUE.
 

Sang1

XLDnaute Junior
Re : Macro de recherche d'une valeur proche

Rebonjour le forum !

J'ai encore besoin de votre aide. Mon probleme de compatibilité ne venait effectivement pas du séparateur décimal...

Sur mon PC, tout marche bien, par contre, sur le PC de mon superieur, j'obtiens cette erreur #VALUE quand je veux actualiser la formule...

Voici la marche que j'ai suivi : Copie des deux fichiers dans le meme dossier, ouverture du fichier Datasheets puis de celui contenant la macro, et actualisation de la formule -> erreur.

Je pense qu'il vient de cette ligne :
With Workbooks(nom_fich).Sheets("Sheet1")

En effet, quand j'ajoute un "Add Watch" sur une variable en amont, avec la condition "break when change" tout va bien, la macro s'arrete, par contre, si je le met sur la variable juste en aval (col) j'obtiens mon erreur #VALUE sans qu'on me renvoit dans la macro.

Sur mon PC, tout marche bien.

J'ai réalisé le test suivant qui semble intéressant.
J'ai inseré dans le fichier Datasheet la macro, et du coup remplacé la ligne
With Workbooks(nom_fich).Sheets("Sheet1")
par
With Sheets("Sheet1")

Et la, ca fonctionne...

Cela ne viendrait'il pas d'un probleme de droits, ou je ne sais quoi d'autres ?
Ya t'il possibilité de contourner l'utilisation du with ?
 
Dernière édition:

Sang1

XLDnaute Junior
Re : Macro de recherche d'une valeur proche

Finalement j'ai trouvé tout seul, je poste la solution au cas ou d'autres auraient le probleme.

Allez savoir pourquoi, mais en mettant

With Workbooks("inventaire") ... ca marchait sur mon PC, et sur certains de ceux de mes collègues, et ce qu'il manquait pour qu'il fonctionne sur celui des autres était le ".xls"

Du coup,
With Workbooks("inventaire.xls") marche partout. Je pense que c'était ce que j'étais censé mettre à l'origine dans le code qu'on m'avait proposé, mais je n'avais pas remarqué mon erreur du fait que le code marchait..

A plus !
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso