Formulaire + Listview avec recherche

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JONEY76

XLDnaute Occasionnel
[TERMINE ]Formulaire + Listview avec recherche

FICHIER TERMINE DISPONIBLE EN PAGE 2 / VERSION V5
OU ICI

Lien supprimé







Bonjour à tous
Vous trouverez ci joint mon fichier😉
A l'intérieur, 4 soucis différents mais complémentaires 😕
J'ai besoin de vos lumières (halogènes ou xénon recommandé🙂)
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Dans le formulaire de saise, test réalisé avec le code suivant mais résultat non concluant

Code:
Dim Derligne As Long
    With Sheets("bd1")
        Derligne = .Range("a65536").End(xlUp).Row
        .Cells(Derligne + 1, 1) = TextBox7
        .Cells(Derligne + 1, 2) = ComboBox1
        .Cells(Derligne + 1, 3) = TextBox1
        .Cells(Derligne + 1, 4) = TextBox2
        .Cells(Derligne + 1, 5) = TextBox3
        .Cells(Derligne + 1, 6) = TextBox4
 
End With
 
Re : Formulaire + Listview avec recherche

Je viens de tester

La date à saisir n'est pas forcément la date du jour, à tester à l'usage pour le calendrier

- Le if not is numeric m'envoi un message d'erreur


- Le format de la date n'est pas dans le bon ordre
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Bonsoir


Code à rajouter

Code:
Private Sub TextBox3_Change()
If TextBox3.Value = "" Then Exit Sub
If Not IsNumeric(TextBox3.Value) Then
Call MsgBox("Vous devez entrer une valeur numérique", vbInformation, Application.Name)

Exit Sub
End If
End Sub

Il faut utiliser le format date dans excel.
Code:
cell.Value = CDate(TextBox7)


JP
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Dans la feuille BD1, j'ai un triangle vert et je dois convertir en nombre les données, on peut l'éviter ?


Avant je passais par le biais des cellules avant d'envoyer les données vers la base

C'est plus direct de faire textbox vers base de données, mais ca demande plus de code ...
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Bonsoir

Il faut indiquer à excel le type de donnée que l'on a dans la colonne Menu format.....
Ou utiliser des codes comme ceci CLng(TextBox1)
Clng a voir dans l'aide de VBA Cint, Cbyte, CCur,.......
JP
 
Re : Formulaire + Listview avec recherche

Bonjour

Code à corriger

Code:
Dim total As Single
cell.Value = CDate(TextBox7)
cell.Value = Format(cell.Value, "dd/mm/yyyy")
.......................................
total = CSng(TextBox3) * CCur(TextBox4)
cell.Offset(0, 6).Value =total



.........................
End Sub
.................
Private Sub TextBox4_Change()
With TextBox4
If .Value = "" Then Exit Sub
.Value = Replace(.Value, ".", ",")
If Not IsNumeric(.Value) Then
    Call MsgBox("Vous devez entrer une valeur numérique", vbInformation, Application.Name)
    Exit Sub
End If
End With
End Sub
..............

L' écriture Dim i est inutile Dim i correspond à Dim i as variant. Par défaut toutes les variables sont de type variant.
Il faut écrire Dim i as long si i est l'index de ligne, Dim i as byte si i a la valeur maxi de 255.

Concernant la recherche il faut modifier le code

Code:
With Sheets("BD1")
    [COLOR="Red"]i = 4[/COLOR]
    Do
    Set c = .Range(.Cells(i, 1), .Cells(i, 10)).Find(TextBox2, LookIn:=xlValues, [COLOR="SeaGreen"]SearchOrder:=xlByRows, LookAt:=xlWhole[/COLOR])
Les modifications verte ne sont pas obligatoire, à vérifier.


JP
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Bonjour

Pour moi, la formule :
Ligne 33 du 'CommandButton1_Click'
Code:
cell.Value = Format(CDate(TextBox7), "dd/mm/yyyy")

Comporte deux problèmes :
- Il y a une incompatiblité entre les dates dd/mm/yyyy et mm/dd/yyyy qui n'est pas correctement géré (à mon avis, car je n'en connais pas la cause). Ce qui créer un problème dans certains cas de test.
- TextBox7 est déja sous forme d'une date, et qu'il n'y a pas besoin de changer ce format. Pour obtenir dd/mm/yyyy dans la cellule, le code de la macro "donnee" est suffisant (ou peut simplement être rajouter après la solution ci-dessou.

Ma solution :
Code:
cell.Value = TextBox7

Une préconisation :
Le code de la macro "donnee" est lourd et lent. Je préconiserais de remplacer le "for" par une "while cellule suivante différente de vide" comportant une incrémentation de la ligne observée dans le 'while'. Ce qui aurait pour effet d'arréter le programme lorsqu'il n'y a plus de ligne, sans passer plusieurs minutes à balayer le fichier.

En espérant que la solution soit transposable.

Olivier
 
Re : Formulaire + Listview avec recherche

J'ai effectué les modifications

Par contre il ne reconnait pas les dates dans la recherche ....

Maintenant il met la date au format : 12/02/2010 00:00


J'ai ajouté un bouton, pour afficher toutes les données dans la listview (ré initialize)
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
420
Réponses
5
Affichages
479
Retour