Rechercher si valeur existante depuis concatener

Bonjour,

J'ai créé un Userform dans lequel on saisie la date (TextBox23) puis

  • soit on choisit un pays (dans une ListBox1) et la quantité (Textbox25)
  • soit on choisit "France" (dans la même ListBox1) et on saisie le n° de département (TextBox24) et la quantité (Textbox25)

Les données s'enregistrent alors dans une base de données et :

  • en colonne A on trouve le concatener de la date+pays
  • en colonne B on trouve le concatener de la date+département

Je cherche à vérifier si a cette date l'enregistrement a déjà été réalisé.

J'ai donc mis ce bout de code mais ca ne trouve jamais de données alors que je suis sûr que ca existe déjà

(Code en bas du message)

Où se trouve mon erreur ? (qui doit être devant mes yeux )

Un grand merci pour votre aide,

Bonne journée, Bon weekend

Loic

Dim i, x As Long
x = Cells(1, 2).End(xlDown).Row
Dim strSearch2 As String
strSearch2 = CLng(CDate(TextBox23.Value)) & "" & TextBox24.Value
If ListBox1 = "France" Then
For i = 1 To x
If Cells(i, 2).Value = strSearch2 Then
    MsgBox "Département déjà enregistré pour la journée du " & TextBox23.Value
    Me.TextBox24.Value = 0
    Me.TextBox25.Value = 0
    End If
Next i
Exit Sub
End If
Dim i2, x2 As Long
x2 = Cells(1, 2).End(xlDown).Row
Dim strSearch3 As String
strSearch3 = CLng(CDate(TextBox23.Value)) & "" & ListBox1.Value
If ListBox1 = "France" Then
For i2 = 1 To x
If Cells(i2, 2).Value = strSearch3 Then
    MsgBox "Pays déjà enregistré pour la journée du " & TextBox23.Value
    Me.TextBox24.Value = 0
    Me.TextBox25.Value = 0
    End If
Next i2
Exit Sub
End If

Bonjour,

je pense que vous devez avoir un problème de reconnaissance sur la date. Avec la fonction "CLng", votre date est convertie en nombre.

Vous devriez avoir plus de chance dans votre recherche avec

strSearch2 = TextBox23.Value & "" & TextBox24.Value

car si votre date est associée avec du texte, elle est forcément en texte dans votre base.

Merci pour la réponse

Le concaténer affichant la date en nombre, je pensais que c'était la bonne solution...

Ai je tort ?

Je viens de tester et ca ne fonctionne toujours pas

Bon dimanche

Loïc

Bonjour,

Il faudrait un extrait du contenu exact des colonnes de votre base . Par ailleurs, votre code est relatif à la feuille active qui n'est pas forcément celle de votre base de données.

J'ai testé en précisant de quelle feuille, mais ca ne fonctionne pas.

Je joins le document complet.

Rien de vraiment confidentiel

Il s'agit du Userform2 pour lequel il y a le problème.

J'espère que vous ne jugerez pas trop mon travail, je suis encore débutant en macro

Si besoin, je peux créer un doc résumé, plus simple

Merci encore,

Bon dimanche,

Loic

6test-loic.xlsm (178.07 Ko)

Bonsoir,

Un essai en utilisant une collection dynamique type dictionnaire nommée "quantités" avec pour clé, la date + le département + le pays

Votre colonne département doit être définie au format texte car le département n'est pas un nombre mais un code. J'ai corrigé car vous auriez eu des soucis avec tous ceux commençant par 0.

5test-loic1.xlsm (158.52 Ko)

Bonjour,

Je viens de tester et je peux enregistrer plusieurs fois le même pays, idem pour le département

Désolé...

Encore merci pour l'aide,

Excellente soirée,

Loic

et avec cette version

3test-loic2.xlsm (158.69 Ko)

Bonjour,

Toujours le même problème

Excellente journée et encore merci pour l'aide,

Loic

Bonjour,

Bug corrigé.

4test-loic3.xlsm (158.51 Ko)

Re

Ca semble presque parfait ! le code est tellement plus simple au final

J'ai encore deux petits soucis qui semblent plus simple à première vue.

1. si je saisis le département "1" puis le département "01" ca ne me dit pas que c'est un doublon

2. sur l'onglet "Suivi Départements" le filtre semble ne plus fonctionner, est ce dû au format texte des départements ?

Un immense merci,

Excellente semaine,

Loic

Bonjour,

En fait, le département doit toujours être sur 3 chiffres compte-tenu de l'outremer.

Si l'on saisit 1, cela se traduit par le code 001.

De plus, je pense que vous n'avez plus besoin des colonnes concaténées, ce qui va simplifier code et base.

ci-jointe version correspondante sans ces colonnes.

3test-loic4.xlsm (160.72 Ko)

Hello,

Merci beaucoup

Parfait pour les doublons !!

En enlevant le concatener, l'affichage sur l'onglet "Suivi Départements" ne fonctionne plus

On peut toruver une alternative à ce que j'avais fait ?

Encore un grand merci,

Bonne journée,

Loic

Certainement, je vais regarder.

Tu es vraiment au top, merci à toi !

Loïc

Bonsoir,

ci-jointe version intégrant l'affichage sur l'onglet "Suivi Départements"

via la fonction RECHERCHEVA que j'ai développée = RECHERCHEV avec plusieurs arguments au lieu d'un seul.

4test-loic5.xlsm (161.67 Ko)

Bonjour,

Je reviens un peu tard car j'ai été un peu bloqué par le travail et je voulais réaliser plusieurs tests...

Pour l'affichage de l'onglet département, il y a un soucis car cela ne réagit plus comme c'était prévu

En fait, dans la liste déroulante située en E9 de l'onglet "Suivi Départements", si je choisis :

- "Par département" = tous les départements pour lesquels le total est supérieur à 0 s'affichent (en plus des pays)

- Une région en particulier = les départements de cette région s'affichent (en plus des pays)

Ne comprenant pas trop la fonction recherchea qui a été créé, je n'arrive pas à corriger

Encore un immense merci pour l'aide,

Excellent dimanche,

Loic

Bonjour,

Ne comprenant pas trop la fonction recherchea qui a été créé, je n'arrive pas à corriger

Voici la syntaxe de cette fonction :

RECHERCHEVA(Plage; indice colonne de la plage; argument1;argument2,.....)

J'ai apporté les correction suivantes :

1- format des département en texte "000"

2- ajout de la formule de recherche dans les colonnes département avec un argument2 différent de celui des colonnes pays en raison des cellules fusionnées.

2test-loic6.xlsm (179.61 Ko)

Bonjour,

Merci infiniment pour la réponse.

Je viens de faire quelques tests et c'est vraiment bien.

Mon ordi est très lent aujourd'hui et du coup, lorsque je saisi des départements, sur l'onglet "suivi département", les données ne se mettent pas à jour (je dois double cliquer dans la cellule pour que ca s'affiche / En faisant F9 cela ne change pas non plus).

De même, si je choisis "Par département" dans la liste déroulante en E9, ca ne m'affiche pas la France.

Cela vient de la lenteur de mon PC ? (je joins le tableau sur lequel j'ai réalisé les tests)

Excellent weekend,

Loic

3test-loic7.xlsm (183.75 Ko)

Bonsoir,

il y a un effectivement un souci. Je regarde et te reviens.

Rechercher des sujets similaires à "rechercher valeur existante concatener"