Aide pour listbox et bouton modifier

Bonjour

Je reviens vers vous pour un peu aide car la je rame totalement malgré mes recherches sur ce que j'aimerai faire.

Les objets concernés sont la ListBox1 et bouton "Modifier" car l'objectif serai de pouvoir effectuer une modification si nécessaire sur une ligne renseigné de la listbox1 avant validation de la liste vers la feuil "BDD Previ".

Utilisation UserForm1:

1-->choix de la date, 2-->choix catégorie (Cbx1), 3-->choix unité valeur (Cbx2), 4-->choix thème (Cbx3), 5-->click bouton "journée suivante", 6-->les infos sont copié dans feuille "Passage" et retranscrit dans ListBox1.

ainsi de suite (10, 15, 20lignes ou plus encore).

Puis on souhaite modifier la ligne 4 par exemple, donc on click sur ligne 4 de la ListBox1, les infos s'affichent dans les objets 1, 2, 3 et 4 , on modifie puis valide avec bouton "Modification".

Voila ce que j'essai d'effectuer, mais je sais pas si il faut prendre en référence pour la recherche la ListBox ou la feuille "Passage".

Voici le fichier en PJ.

Merci de votre soutien.

122essai-liste.xlsm (74.89 Ko)

Bonsoir

ma proposition

déclarer

Dim Mem

en haut des codes de l'user

Private Sub ListBox1_Click()
Mem = Me.ListBox1.ListIndex
'#Code qui affiche la selection dans les objets DTPicker1, CBx1, CBx2, CBx3
      DTPicker1 = Me.ListBox1
      ComboBox1 = Me.ListBox1.Column(1)
      ComboBox2 = Me.ListBox1.Column(2)
      ComboBox3 = Me.ListBox1.Column(3)
End Sub
Private Sub CdBModifier_Click() 'Modifier quand ListBox1 est alimenté
Dim Lgn As Long 'N° de la ligne

'Si tout est renseigné, un message de confirmation s'affiche
 If MsgBox("Confirmez-vous cette modification ?", vbYesNo, "Demande de confirmation") = vbNo Then
 Exit Sub
 Else
'#Enregistrement des nouvelles données
   If mem <> "" Then
      With Sheets("Passage")
        .Range("A" & mem + 2).Value = CDate(DTPicker1) '.Value
        .Range("B" & mem + 2).Value = ComboBox1 '.Value
        .Range("C" & mem + 2).Value = ComboBox2 '.Value
        .Range("D" & mem + 2).Value = ComboBox3 '.Value
        .Range("E" & mem + 2).Value = CDate(TextBox1) '.Value
        .Range("F" & mem + 2).Value = Format(Me.TextBox2.Value, "hh:mm")
     End With
   Alim_ListBx1
   RAZ
   End If
 End If
End Sub

la première ligne de la feuille passage commençant a 1 et la listbox a 0, mem +2 pour écrire sur la bonne ligne

Bonjour BOB71AU

Je viens de tester, ça marche parfaitement. BRAVOOOO et MERCIIIII.

Si je peu me permettre, une petite question ? j'essai de faire un code de manière à ce que quand la listbox est vide alors le bouton "Valider liste" est masqué sinon bouton affiché.

j'ai donc ce code mais ça ne marche pas. suis-je sur la bonne voie ?

Private Sub ListBox1_Change()
  If Me.ListBox1.ListCount = 0 Then
   Me.CdBValider.Visible = False
  Else
   Me.CdBValider.Visible = True
  End If
End Sub

Merci.

Cdlt

bonjour a vous

essaie de remplacer "visible" par "enable" sans être sur de ce que je dits

Bonjour pompaero

fichier joint

j'ai remis les modifs précédentes + la gestion du bouton valider et du bouton modifier

il doit rester des choses a faire notamment vider le Mem après validation des modifs

135essai-liste-v1.xlsm (77.08 Ko)

Bonjour BOB71AU

Tes modifs sont pas mal, (c'est presque identique aux miennes , je me suis pas mal débrouillé sur ce coup)

Je confirme il reste des choses à faire, mais préfère aller doucement mais surement.

Tu dis "Vider le Mem après validation des modifs" comment ça ?

Pour les choses restantes à faire en particulier j'aimerai :

1) une alerte (MsgBox) sur les boutons "Journée suivante" et "Modification" sur les dates car il ne sera pas possible d'avoir 2 fois la même date dans feuille "BDD Previ".

2) L'aperçu des différents boutons (en cour) :

-->Bouton "Journée suivante" s'affiche si CBx3 est <>""

-->Bouton "Modifier" s'affiche si Dbclick sur ListBox (oui ! je l'ai essayé en Dbclick et je trouve que c'est mieux) puis masqué sur click "Modifier"

-->Bouton "Valider liste" s'affiche des lors qu'il y a au moins une ligne dans ListBox. (ça c'est fais, grace à toi).

Voila c'est déjà pas mal !!! Lol d'autres choses viendrons par la suite mais je verrai après.

Merci

Cdlt

Re

attention au set ws dans les combos change

pour le reste c'est fait

si tu veux corriger

fichier remplacé

Re

Merci de ton aide. Tu donnes l'impression de te régaler sur ce post.

Je regarde à ça tout à l'heure et reviens te dire.

Merci

Re

Suite à l'observation de tes codes, j'ai donc remis tout à jour dans mon fichier original qui rend pas mal coté visuel puis assez simple d'utilisation (je trouve!!).

Bravo pour le code d'alerte sur la date , sincèrement sur ce coup je n'y serai pas arrivé.

Je suis arrivé à classer les boutons de manière à en avoir qu'un en visu par rapport à l'opération en cours en les superposant et grâce à tes codes.

Pour cette partie je pense avoir fini.

Il me reste plus qu'à étudier une méthode pour pouvoir juste modifier dans la feuille "BDD Previ" une fois les données dedans.

j'aimerai bien rester sur le même UF pour ça.

Fichier exemple en PJ pour voir la finition.

64essai-liste.xlsm (79.13 Ko)

Bonjour

début de réponse

nouveau bouton a coté de la date pour la recherche

je n'ai pas fais la validation des modifs

ce servir de mem1

a toi de jouer

109essai-liste-v1-2.xlsm (71.32 Ko)

Bonjour

Merci pour ce début de proposition, c'est cool.

Je vais tenter d'effectuer le reste puis reviens vers toi pour te montrer.

Merci à bientôt

Cdlt

Re

Je viens d'essayé de poursuivre les modifs mais rien se passe.

En prenant modèle sur l'autre bouton "Modifier", J'ai ajouté un bouton "CdBModif2" en me servant de mem1, mais, rien !!!!

suis-je sur la bonne vois ?


Oupss !!

oublié de joindre le fichier, lol

Re

Je viens de trouver le code !!!!! en tout cas ça marche

Je le poste des que possible

Bonjour pompaero

une réponse

mais une question me turlupine depuis le début

Si les feuilles sont masquées, à quoi sert la base de données?

Bonjour BOB71AU

Je pense avoir réussi la méthode des modifs, (promis, sans avoir ouvert avant ta dernière version V4) je vais l'ouvrir aussitôt avoir envoyé ce post.

Par contre je vois que tu es un vrai prof, une base de donnée sans rien en liaison c'est louche, n'est ce pas ? . Mais comme tu a été plus rapide que moi, la réponse est dans le fichier en PJ. (C'est de renseigner un calendrier annuel) avec la date (en année).

Donc la dessus je veux bien un petit coup de main car les recherche avec date, n'est pas mon fort. (je vais essayer tout de même).

Bonsoir

ou en es-tu dans tes essais ?

je regarde par macro car les formules, c'est pas pour moi

Re

regarde si cela te conviens

Bonjour BOB71AU

Merci pour tout, oui cela me convient très bien...

Petite question :

Est il possible d'avoir plusieurs plages avec un For ? Ca serai pour le For j = 5 To 68, car si non cela efface les titres du tableau inférieur.

J'ai tenté For j = 5 To 32, 38 To 68 mais ne marche pas..

Je vais chercher sur internet tout de même.

Cdlt

Bonjour

Désolé pas vu

Sub TransfertVersTableau()
Dim c, i, j, ws As Worksheet
Application.ScreenUpdating = False

  Set ws = Sheets("Calendrier theme")
For i = 2 To 32 Step 6
   For j = 5 To 68
      If j <> 37 Then
        If IsDate(Cells(j, i)) Then
            ws.Cells(j, i + 1) = ""
            ws.Cells(j, i + 2) = ""
            ws.Cells(j, i + 3) = ""
         Set c = Sheets("BDD Previ").Columns(1).Find(Cells(j, i))
         If Not c Is Nothing Then

            ws.Cells(j, i + 1) = VBA.Left(c.Offset(0, 1), 4)
            ws.Cells(j, i + 2) = VBA.Left(c.Offset(0, 2), 4)
            ws.Cells(j, i + 3) = VBA.Left(c.Offset(0, 3), 4)
         End If
        End If
      End If
   Next j
Next i
Application.ScreenUpdating = True
End Sub

Re

tu na pas a être désolé..

merci cette fois ci ça marche. Par contre je viens de me rendre compte d'un petit soucis au niveau du 29 février.

Quand une infos est inscrite au 29 fév puis que l'on passe à l'année suivante ou précédente donc 28 jours, les infos du 29 reste inscrite.

Rechercher des sujets similaires à "aide listbox bouton modifier"