IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform : modifier et supprimer des enregistrements


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 43
    Par défaut Userform : modifier et supprimer des enregistrements
    Bonjour à tous,

    Je sais qu'il y a déjà une conversation à ce sujet :
    http://www.developpez.net/forums/d14...-d-formulaire/

    Malheureusement je n'arrive pas à traduire ces codes selon mes besoins (débutante encore en VBA )

    J'ai un userform de cette forme, voir ci-dessous :

    Nom : 555.JPG
Affichages : 2594
Taille : 231,8 Ko

    Qui affiche des enregistrements selon les informations suivantes :

    Nom : 666.JPG
Affichages : 2290
Taille : 56,5 Ko

    Et voici l'onglet "Evénements" de référence des enregistrements :

    Nom : 777.JPG
Affichages : 2193
Taille : 114,8 Ko

    J'ai déja réaliser plusieurs code, pour l'affichage et pour fermer l'userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Private Sub UserForm_Initialize()
     
    Dim J As Long
     
        Dim I As Integer
     
        ComboBox1.ColumnCount = 1
     
        ComboBox1.List() = Array("Obligation", "Projet", "Communication Equipe", "Divertissement", "Autre")
     
        ComboBox2.ColumnCount = 2 
     
        ComboBox2.List() = Array("Toute l'équipe", "Comptabilité Fournisseurs", "Comptabilité Générale", "Trésorerie")
     
        ComboBox3.ColumnCount = 3 
     
        ComboBox3.List() = Array("Toutes sociétés", "237", "324")
     
        Set Ws = Sheets("Evénements") 
     
        For I = 1 To 6
     
             Me.Controls("TextBox" & I).Visible = True
     
        Next I
     
     
     End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton3_Click()
     
        Unload Me
     
    End Sub
    Ainsi, voici ma demande,

    je recherche deux codes :

    le premier qui me permettrait de modifier les informations de l'userform en cliquant sur "CommandButton2"

    le second qui me permettrait de supprimer l'enregistrement de la colonne A jusqu'à la colonne N dans l'onglet "Evénements", en cliquant sur "CommandButton4"


    J'espère avoir été assez clair pour la compréhension !

    De plus j'ajoute le code pour l'affichage des événements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     
    Dim WsEvent As Worksheet
    Dim RowEvent As Single
    Dim rech1 As String
    Dim rech2 As String
    Dim rech3 As String
    Dim rech4 As String
    Dim rech5 As String
    Dim rech6 As String
    Dim rech7 As String
    Dim rech8 As String
     
    If Target.Row < 6 Then Exit Sub
    If Target.Row > 25 Then Exit Sub
    If Target.Column < 4 Then Exit Sub
    If Target.Column > 64 Then Exit Sub
     
    Set WsEvent = Sheets("Evénements")
     
    With WsEvent
        'Fais une recherche dans la colonne 3 de la feuille Evenement de la valeur de la cellule sur laquelle tu as RightClic
        RowEvent = .Columns(2).Find(Target.Value, , , , xlByColumns, xlPrevious).Row
     
        'Si RowEvent renvoie un truc cohérent (une ligne entre 2 et 199), je récupère la valeur des colonne 3/4/5/6/7 dans les variables rech1/2/3/4/5
        If RowEvent > 1 And RowEvent < 200 Then
            rech1 = .Cells(RowEvent, 5).Value
            rech2 = .Cells(RowEvent, 6).Value
            rech3 = .Cells(RowEvent, 7).Value
            rech4 = .Cells(RowEvent, 8).Value
            rech5 = .Cells(RowEvent, 9).Value
            rech6 = .Cells(RowEvent, 4).Value
            rech7 = .Cells(RowEvent, 10).Value
            rech8 = .Cells(RowEvent, 11).Value
     
            'Affiche le msgbox
            If MsgBox("Catégorie : " & rech1 & vbCrLf & "Action : " & rech2 & vbCrLf & "Commentaire : " & rech3 & vbCrLf & "Service : " & rech4 & vbCrLf & "Société(s) : " & rech5 _
            & vbCrLf & vbCrLf & "Voulez-vous modifier cet évènement ?", vbDefaultButton1 + vbYesNo) = vbYes Then
     
            UserForm2.TextBox6.Value = RowEvent
            UserForm2.ComboBox1.Value = rech6
            UserForm2.TextBox1.Value = rech1
            UserForm2.ComboBox2.Value = rech4
            UserForm2.TextBox2.Value = rech2
            UserForm2.ComboBox3.Value = rech5
            UserForm2.TextBox3.Value = rech3
            UserForm2.TextBox4.Value = rech7
            UserForm2.TextBox5.Value = rech8
            UserForm2.Show
     
     
       End If
     
        Else
            MsgBox "Aucun évènement est enregistré à cette date"
        End If
    End With

    Merci d'avance pour vos réponses

    Bonne journée à tous

  2. #2
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut


    Bonjour,

    Les informations que tu souhaite modifier/supprimer, tu veux les repérer grâce aux types d'événements ?

    Quand tu veux supprimer un événements, tu souhaite décaler toutes les cellules vers le haut, afin de ne pas laisser une ligne blanche, ou peu importe ?

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 43
    Par défaut
    Bonjour Nico Chg,

    (décidément tu m'aides beaucoup sur mon projet)

    Afin de t'éclairer, je t'informe sur le context :

    voici le planning final :
    Nom : 888.JPG
Affichages : 2125
Taille : 80,1 Ko

    Puis lorsque l'on clique droit sur l'un cellule un message s'affiche :

    Nom : 999.JPG
Affichages : 2213
Taille : 70,5 Ko

    Si on clique sur oui, alors l'userform s'affiche

    Nom : 11111.JPG
Affichages : 2420
Taille : 90,4 Ko

    Je souhaite que la modification/suppression se réalise en fonction du numéro de l'événement, soit ici "12", qui se trouve dans la colonne "B" de l'onglet "Evénements"

    et effectivement, j'aimerai également que les lignes se décalent vers le haut lors d'une suppression d'un événement.

    J'espère t'avoir aider sur les explications de mon problème

    Merci encore de prendre du temps pour m'aider

  4. #4
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut


    Modifier l'événement de devrait pas poser de problème, je me pose juste une question : Il s'agit bien de l'événement lui même que tu veux modifier, ou de la valeur dans le planning ?

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 43
    Par défaut
    L'évènement lui même, car il se fera automatiquement dans le planning par la suite

  6. #6
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut


    N'est ce pas dangereux ? si tu modifie l'événement, ça va modifier également toutes les autres occurrences du planning ! Mais bon, c'est ton projet, tu sais mieux que moi ce qui doit être fait

    Pour modifier une ligne, c'est assez facile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ModifLine = Cdbl(Me.Textbox6.value)
    With Worksheets("MaFeuille")
        .cells(ModifLine, 4) = Me.Combobox1.value
        '...
        'Je n'ai pas regardé toutes les colonnes à modifier, charge à toi de le faire !
    End with
    Pour supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ModifLine = Cdbl(Me.Textbox6.value)
    With Worksheets("MaFeuille")
        .range("A" & ModifLine & ":N" & ModifLine).Delete Shift:=xlUp
    End with
    Tu peux essayer quelque chose comme ça.

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 43
    Par défaut
    Ca marche c'est parfait ! encore merci !

    J'ai rajouté quelques info en plus dans le code pour qu'il soit un peu plus au point !

    Merci encore pour ta contribution !

    J'ai une dernière question, penses tu qu'avec différentes cases à cocher, l'on peut modifier l'apparence du planning ?

    Merci

  8. #8
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut


    Tout dépend de ce que tu veux modifier

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 43
    Par défaut
    je pense avoir trouvé !

    Faire des mises en forme conditionnelle en fonction des cases à cocher !

    Merci vraiment pour ton aide !

    A bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire.
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 113
    Dernier message: 06/03/2025, 20h03
  2. [MySQL] supprimer des enregistrements de ma base
    Par arti2004 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/06/2006, 16h08
  3. Réponses: 3
    Dernier message: 13/06/2006, 15h16
  4. Réponses: 4
    Dernier message: 14/10/2005, 10h54
  5. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo