Erreur 2042 avec application.match

Bonsoir,

Après avoir trouvé la ligne sur laquelle une recherche doit être faite,

je veux récupérer le numéro de la colonne contenant le texte donnée par une variable nommée:four.

Une variable nommée:col, aura le numéro de cette colonne.

J'utilise application.match, mais en retour, j'obtiens le code erreur 2042.

Quelqu'un aurai-t-il une idée ?

Voici le code:

Public Sub Tableau_PR(four As Variant, defaut As String)

    Dim col As Variant
    Dim Trouve As Range

    Set Trouve = Cells.Find(what:=(DateSerial(Year(Now), Month(Now), 1)), LookAt:=xlWhole)
    If Trouve Is Nothing Then Exit Sub
    Trouve.Select

    col = Application.Match(four, ActiveCell.Row, 0)

End Sub

Et si joint le fichier contenant le tableau où la recherche doit être faite.

Merci pour votre aide.

jojo

End Sub[/code]

6tableau.xlsm (77.17 Ko)

bonjour

je ne sais pas ce que tu veux en faire, mais voici un exemple de ce qu'Excel te permet de faire (Excel, et pas VBA bien entendu)

j'ai ajouté une colonne de date (Excel adore jj/mm/aa, et ne comprend rien à "avril 2013") et utilisé Power Query pour dépivoter ton tableau, avant de le repivoter

j'ai fait pour 2 mois,

bon travail

bonjour jmd,

d'abord, merci beaucoup pour ce bel exemple des possibilité de power query. J'ai grâce à toi appris qu'il existait l'outil chronologie qui va m'être bien utile.

Comment as-fait pour "dépivoter" le tableau ? A l'aide de l'éditeur avancé? Ou existe-t-il une fonction dédiée?

Ce tableau va m'être bien utile pour la présentation de la synthèse du mois des défauts rencontrés.

Néanmoins, je dois quand même passer par vba.

Je n'ai pas pu joindre l'ensemble des fichiers que j'utilise, trop lourds, trop longs à expliquer et trop de modules.

A l'aide d'un Userform, je demande aux utilisateurs d'indiquer quel four a un problème et de quel problème il s'agit.

Le nom du four devient alors le résultat de la variable nommée " four" et le type de problème devient lui, le résultat de la variable nommée "defaut".

Ce que je voudrais faire, c'est incrémenter la valeur de la cellule située à l'intersection de la ligne defaut et de la colonne four.

Ce qui permettra de comptabiliser le nombre et le type de défauts par four et par mois.

J'arrive déjà à trouver le tableau du mois en cours, précisément sur la cellule contenant la date, reste à trouver les coordonnées de la cellule à incrémenter.

Pourquoi cette demande? Pour remplir ce tableau au fur et à mesure des problèmes rencontrés et m'éviter de devoir éplucher les paperasses à la fin de chaque mois, pour remplir ce tableau.

Donc, si quelqu'un pouvait solutionner mon problème...Je continue à chercher de mon côté, vu mon niveau, c'est pas gagné, mais je persiste! Rien de tel pour apprendre!

jojo la frite

6tableau.xlsm (77.17 Ko)

Bonjour,

Sub Tableau_PR(four As String, defaut As String)
    Dim col As Integer
    Dim Trouve As Range
    Set Trouve = ActiveSheet.Columns(1).Find(DateSerial(Year(Date), Month(Date), 1))
    If Trouve Is Nothing Then Exit Sub
    col = Application.Match(four, Trouve.EntireRow, 0)

End Sub

Cordialement.

bonjour,

d'abord, merci beaucoup pour ce bel exemple des possibilité de power query. J'ai grâce à toi appris qu'il existait l'outil chronologie qui va m'être bien utile.

Comment as-fait pour "dépivoter" le tableau ? A l'aide de l'éditeur avancé? Ou existe-t-il une fonction dédiée?

Ce tableau va m'être bien utile pour la présentation de la synthèse du mois des défauts rencontrés.

Néanmoins, je dois quand même passer par vba.

Je n'ai pas pu joindre l'ensemble des fichiers que j'utilise, trop lourds, trop longs à expliquer et trop de modules.

A l'aide d'un Userform, je demande aux utilisateurs d'indiquer quel four a un problème et de quel problème il s'agit.

Le nom du four devient alors le résultat de la variable nommée " four" et le type de problème devient lui, le résultat de la variable nommée "defaut".

Ce que je voudrais faire, c'est incrémenter la valeur de la cellule située à l'intersection de la ligne defaut et de la colonne four.

Ce qui permettra de comptabiliser le nombre et le type de défauts par four et par mois.

J'arrive déjà à trouver le tableau du mois en cours, précisément sur la cellule contenant la date, reste à trouver les coordonnées de la cellule à incrémenter.

Pourquoi cette demande? Pour remplir ce tableau au fur et à mesure des problèmes rencontrés et m'éviter de devoir éplucher les paperasses à la fin de chaque mois, pour remplir ce tableau.

Donc, si quelqu'un pouvait solutionner mon problème...Je continue à chercher de mon côté, vu mon niveau, c'est pas gagné, mais je persiste! Rien de tel pour apprendre!

jojo la frite

re

dépivoter

dans la fenêtre de PQuery, clic droit sur un titre de colonne et "supprimer pivot autres colonnes" (présélectionner les colonnes à ne pas dépivoter)

il faut tester un peu

aucune ligne de code à saisir !

pour saisir des données dans un tableau, il n'y a jamais besoin de VBA

d'ailleurs, VBA ne sert à rien sur les versions >=2010 d'Excel.

tu as des milliers de données dans divers onglets et fichiers, c'est le job de PQuery et PPivot (ou de Power BI Desktop gratuit)

note qu'il est inutile de créer un tableau comme le tien pour faire la saisie

un onglet en colonnes simples est plus simple

  • date
  • qui
  • quel matériel
  • quelle panne
  • durée (si tu veux)
  • coût (si tu veux)
on l'appelle LISTE DES PROBLEMES

on n'a pas à chercher (avec un userform quelle horreur )

on saisit une nouvelle ligne à chaque problème, c'est clair et simple

ensuite toi tu fais des TCD et des graphiques

je pense que tu fais pareil avec les non conformités clients

bon travail

re bonjour jmd,

il va falloir que je revois la méthode de récupération des divers données.

Effectivement, ton idée du tableau puis graphique croisé dynamique me semble plus adaptée.

Je vais revoir ma copie à la base et m'orienter vers quelque chose de plus moderne.surtout si la programmation en M n'est pas utile.

Merci jmd pour tes bons conseils, mais têtu comme je suis, je finis mon"vieux" projet en vba, histoire d'apprendre aussi de ce côté-là , puis je recommence mais à partir d'un TCD cette fois !

jojo la frite

Bonjour MFerrand !

ton code marche très bien, plus aucune erreur.

Merci beaucoup.

jojo la frite

re

dans PQuery, on fait tout sans M

trop complexe (mais moins que VBA, faut pas rire)

Rechercher des sujets similaires à "erreur 2042 application match"