LISTVIEW Ajouter Modifier Supprimer

Bebere

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

bonjour Terpick
si tu fais un tri feuille il faut d'abord que la ligne 2 d'entêtes soit complétée
code à changer
Code:
Private Sub CommandButton5_Click()    'listview tout
Dim derl As Long

derl = Cells(65535, 1).End(xlUp).Row
    Me.ComboBox1 = ""
    Me.ComboBox3 = ""
    'tri ascendant colonne A
    Range("A2:R" & derl).Sort Key1:=Range("A3"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

    With ListView1
 .Sorted = False
        .ListItems.Clear
        For L = 3 To derl
            .ListItems.Add , "A" & L, Cells(L, 1)
            Compteur = .ListItems.Count
            For C = 2 To 18
                Cle = Chr(64 + C)
                .ListItems(Compteur).ListSubItems.Add , Cle & L, Cells(L, C).Text
            Next C
        Next L
        .ListItems(1).Selected = False
        Set .SelectedItem = Nothing
    End With

End Sub
à bientôt
 
Dernière édition:

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Salut le Forum, Bébère, For_um!

Désolé pour longue absence - semaine bien chargée.

Je tiens à vous remercier pour votre aide énorme avec ce sujet. Grâce à ces deux fichiers on peut facilement (et agréablement aussi) gérer n'importe quelle base de données simple.

J'espère que ceux qui cherchent qque chose de similaire, pourront profiter ce fil aussi.

Merci encore et à bientôt sur le forum.
 

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour tout le monde,

Fo_rum, je reviens vers vous. J'ai commencé à adapter votre version à mes besoins. Effectivement, j'ai des questions sur son fonctionnement. Je demande donc encore un coup de pouce.

Premièrement, je souhaiterais faire une page de garde (ici - Feuil3) et pouvoir travailler à partir d'elle. L'utilisateur donc n'aura pas accès vers le tableau-même. Le problème, est qu'Userform1 fonctionne avec la feuille active. Dans le vba je n'ai pas pu trouver où il faut faire le changement.

Deuxièmement, j'ai trois combobox pour Ajouter une catégorie :pays, Accès et Truc. Les données pour ces combobox sont sur la feuille Parametres. Dans la version de Bébère j'ai réussi à les adapter (après son aide), mais ici je ne vois pas trop comment cela se ferait...

Et enfin, pour pouvoir modifier ces listes de paramétrage j'ai fais un bouton Paramétrage, à l'aide duquel on peut ajouter/modifier/supprimer les données souhatées (cette méthode j'ai adapté sur ce forum aussi et l'utilise assez souvent). Le problème, c'est que j'ajoute ma donnée dans un endroit fixe : sur la ligne trois. L'inconvénient: pour mettre la liste déroulante dans l'ordre alphabétique, il faut aller à chaque fois sur la feuille Paramètres et faire le tri alphabétique. Est-il possible d'éviter le faire?

Je vous remercie pour votre intérêt et le temps consacré.

Ci-joint le fichier modifié.



A+
 

Fichiers joints

Bebere

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

bonjour Terpick
tu peux lancer les userform de feuille3
rmq dans feuille paramètres pour ajout,modifie,supprime

à bientôt
 

Fichiers joints

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonsoir Bébère,

Merci pour votre réponse et solution pour faire marcher le logiciel depuis la page de garde.

L'UserForm de paramétrage je gère très bien. Je l'ai "reçu" sur le forum il y a environ 1 an et je l'ai déjà adapté dans plusieurs fichiers. Cette méthode est bien pratique. Le seul bémol, c'est qu'on rajoute toujours dans la ligne 3, et l'ordre alphabétique dans la liste déroulante ne se fait pas. Est-il possible de corriger cet inconvénient?

Mais la question beaucoup plus importante : comment adapter les combobox (pour les trois données dans les paramètres) lors de l'ajout d'un nouvel enregistrement? Dans votre version je l'ai fais en trichant : j'ai envoyé les données des combobox dans les textbox, les textbox envoient les données dans le tableau, ensuite, j'ai masqué les textbox. Mais comment faire ici???????

Merci encore de votre aide.

Je joins pour exemple votre version dans un état il y a un mois (faute de données personnelles). Les textbox 2,_8 et 14 sont cachées en bas à droite. Le travail à la hache... mais bon.
Le bog principal de cette version : si on ne saisie rien dans les combobox pour indiquer le tri par Nom, Type ou Ville, le logiciel ne fonctionne pas. J'ai essayé de réparer cela avec un mesagbox, en disant qu'il faut saisir qqchose, mais cela n'a rien donné... ou presque.
 

Fichiers joints

Dernière édition:

Fo_rum

XLDnaute Accro
Re : LISTVIEW Ajouter Modifier Supprimer

Bonsoir,

même idée que Bébère ;) pour les 3 options mais plus de Multiplage. Les risques d'erreur croissent avec la multiplicité des contrôles.

Pour les initialisations, je n'aime pas passer par les noms prédéfinis (trop de problèmes rencontrés indépendamment de ma volonté). J'ai commencé et si cela convient il suffit de reproduire les quelques lignes de code.

Il est primordial de savoir quelle est la feuille active, dans quelle feuille on puise les renseignements et quelle sera la feuille cible.
On voit trop souvent des problèmes à cause de la méconnaissance de cette assertion.

Pour éviter des codes lourds je passe par une variable Worsheet en multipliant les "With ... End With".
Un exemple en est donné dans le document joint (pas eu le temps de trop tester).
 

Fichiers joints

Bebere

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

bonjour Terpick,Fo_rum
dans gestionlistviewv1,tu as une méthode pour ajouter à la 1ère ligne vide + un tri(usfparam(gère les 3 listes de feuille paramètres) appelé par quelle_mission)
userform1,listview1 ajout de key(clé,code de textbox19) avec un exemple d'utilisation dans bouton supprimer
supprimé accès inutile
à bientôt
 

Fichiers joints

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonsoir tout le monde,

Fo_rum, Bébère, merci pour vos solutions et surtout pour la résolution de la problématique avec la page de garde (néanmoins, si on bidouille un peu avec Combobox1, Textbox19 et l'ordre alphabétique par type, après par ville etc dans la listbox, le programme se perde et affiche des choses bizarres).

Fo_rum, j'ai bien ajouté les lignes dans le code VBA pour affecter les combobox 2,3 et 4:
HTML:
 With Sheets("parametres")
    For L = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
      ComboBox2.AddItem .Cells(L, "A")
    Next
    'compléter les 2 autres ainsi
    For L = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
      ComboBox3.AddItem .Cells(L, "C")
    Next
    For L = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
      ComboBox4.AddItem .Cells(L, "E")
    Next
  End With
Ainsi, les listes déroulantes apparaissent bien dans les combobox correspondantes, le problème, c'est que les données saisies dans ces combobox ne se transmettent pas dans le tableau sur la feuil1.

Quant au paramétrage, je pense adapter la version améliorée par Bébère. Ca fonctione presque bien, mais ça bog quand on ajoute un nouveau mot dans la ligne:
HTML:
   .Range("A1").Select
. Par contre ce mot s'ajoute bien dans la colonne correspondante sur onglet paramètres.

J'espère, que je vous suis dans vos explications et ne rate pas des messages évidents que vous voulez me faire passer.
Bébère, par exemple cette phrase :
userform1,listview1 ajout de key(clé,code de textbox19) avec un exemple d'utilisation dans bouton supprimer
supprimé accès inutile
, j'ai peur que je me suis perdu :)
Merci encore à vous deux

A+
 
Dernière édition:

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonsoir tout le monde, Bébère, Fo_rum,

Bébère, le coup avec combobox!!! c'est génial.
Je vais retravailler ces nouvelles informations entre les fêtes qui arrivent.

Merci beaucoup et Joyeux Noël
 

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour Bébère, le Forum,

Tout allait pas mal avec le logiciel, qusqu'un besoin de supprimer une ligne...
la ligne
Li = Mid(Me.ListView1.ListItems(L).Key, 2)
se met en défaut.
Une idée?

merci d'avance,

A+
 

Bebere

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

bonjour Terpick
la clé est peut être =""
dans Private Sub ComboBox5_Change()
dans cette ligne as-tu "A" & L
ListView1.ListItems.Add , "A" & L, .Cells(L, 1)
à bientôt
 

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour Bébère, merci beaucoup !

J'ai changé la ligne sur
ListView1.ListItems.Add , "A" & L, .Cells(L, 1)
et tout fonctionne maintenant.
La clé j'ai laissé 2, "" ne fonctionne pas.

Par contre, en supprimant la ligne, le nom reste dans Combobox. Pour le remettre à 0, il faut sortir du UForm, qui n'est pas trop pratique, si on veut continuer le travail ;
Est-il possible de supprimer le nom "supprimé" du Combobox tout de suite?

Merci d'avance.

A+
 

Bebere

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

Terpick
clé en anglais key
"A" & l est une clé
si l=2
MsgBox ListView1.ListItems(2).Key le message te donneras "A2"
le bouton supprimer était en exemple
il faut dire ce que tu veux exactement faire
supprimer une ligne une toutes les lignes
si tu supprimes une ligne tutu dois rester
 

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour le Forum, Bebere, Fo_rum,

Je suis en train de finaliser ce fichier. Et mince, en faisant des testes, j'ai aperçu que le listview ne fonctionne pas correctement.

Je m'explique.

pour afficher une catégorie, on fait un tri. Prenons un exemple:

- par nom;
- on choisie un nom.

De l'apparence tout va bien, mais si on prend un nom qui existe plusieurs fois (tyty), les données affichées ensuite dans les textbox correspondent uniquement pour la première ligne dans le tableau Feuil1, même si on clique sur les diffrentes lignes dans le istview. Autrement dit, le tri ne fonctionne pas.

Nous avons oublié qqchose?

Merci de votre aide.

A+
 

jp14

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour à tous


J'ai trouvé encore un détail:

le Bouton Ini listview Tout marche à moitié. Par exemple, si on fait un tri dans une des combobox et après on utilise ....
Le problème provient de la valeur de "sorted", il faut modifier sa valeur.

Code:
Private Sub CommandButton5_Click()    'listview tout
.......................................
    With ListView1
        .ListItems.Clear
        .Sorted = False
.........................................

JP
 
Dernière édition:

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour jp14,

merci pour cette précision. je l'ai ajouté dans le code. ça l'air de fonctionner :)

Pour mon message précédent, je pense que j'ai compris où est le problème. Ce n'est même pas un problème, mais juste une protection contre les redondances dans la première colonne, si j'ose dire. Le logiciel va toujours chercher la première ligne dans le tableau sur Feuil1 pour envoyer les données dans les textbox. Est-il possible d'éviter cette protection??? (si, bien sûr, j'ai raison).

Merci d'avance,

A+
 
Dernière édition:

terpick

XLDnaute Occasionnel
Re : LISTVIEW Ajouter Modifier Supprimer

jp14, je reviens pour une petite précision.

avec
.ListItems.Clear
on nettoie uniquement le listview, mais comment vider les combobox et les textbox?

si je mets par exemple

Unload me: userform1.show,

Userform se mets à 0

Merci d'avance
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : LISTVIEW Ajouter Modifier Supprimer

Bonjour

Pour vider un Combobox il faut utiliser .clear
Pour les textbox

Code:
Dim Ctrl As MSForms.Control
    For Each Ctrl In Me
    If TypeName(Ctrl) = "Textbox" Then Ctrl = ""
    Next Ctrl
JP
 

Discussions similaires


Haut Bas