Rechercher si valeur existante depuis concatener Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
a
a_loic
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 16 janvier 2015
Version d'Excel : 2016

Message par a_loic » 21 janvier 2018, 11:48

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 :oops: )


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
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'693
Appréciations reçues : 227
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 21 janvier 2018, 12:40

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.
a
a_loic
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 16 janvier 2015
Version d'Excel : 2016

Message par a_loic » 21 janvier 2018, 12:43

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
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'693
Appréciations reçues : 227
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 21 janvier 2018, 12:54

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.
a
a_loic
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 16 janvier 2015
Version d'Excel : 2016

Message par a_loic » 21 janvier 2018, 13:17

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 :wink:

Merci encore,
Bon dimanche,
Loic
TEST_LOIC.xlsm
(178.07 Kio) Téléchargé 6 fois
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'693
Appréciations reçues : 227
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 21 janvier 2018, 19:59

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.
TEST_LOIC1.xlsm
(158.52 Kio) Téléchargé 4 fois
a
a_loic
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 16 janvier 2015
Version d'Excel : 2016

Message par a_loic » 21 janvier 2018, 21:07

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
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'693
Appréciations reçues : 227
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 21 janvier 2018, 21:31

et avec cette version
TEST_LOIC2.xlsm
(158.69 Kio) Téléchargé 3 fois
a
a_loic
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 16 janvier 2015
Version d'Excel : 2016

Message par a_loic » 22 janvier 2018, 11:05

Bonjour,

Toujours le même problème :(

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

Loic
Avatar du membre
thev
Membre impliqué
Membre impliqué
Messages : 2'693
Appréciations reçues : 227
Inscrit le : 13 juin 2016
Version d'Excel : 2019 FR 64 bits

Message par thev » 22 janvier 2018, 12:23

Bonjour,

Bug corrigé.
TEST_LOIC3.xlsm
(158.51 Kio) Téléchargé 3 fois
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message