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 :

Mise à jour de plusieurs lignes depuis valeur ListBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut Mise à jour de plusieurs lignes depuis valeur ListBox
    Bonjour,

    J'ai un formulaire me permettant de mettre à jour des quantités dans ma feuille Excel en fonction de la sélection dans une ListBox.

    Je souhaiterai pouvoir modifier plusieurs lignes différentes dans ma feuille Excel lorsqu'une ligne spécifique de ma ListBox est sélectionnée.

    Ex :
    Dans ma ListBox, je sélectionne l'item Kit A, je souhaite que les lignes ITEM1_A , ITEM2_A soient mises à jour.

    Mon code fonctionnel pour une mise à jour d'une ligne autre

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    Private Sub Btn_MAJSTOCk_Click()
     
    '------------------------------------------------------------- APPEL DE LA FONCTION POUR MAJ DU STOCK -------------------------------------------
     
     
    Call edit_from_sheet
     
    '------------------------------------------------------------- FIN APPEL DE LA FONCTION POUR MAJ DU STOCK -------------------------------------------
     
     
     
    '-------------------------------------------------------------- MISE A JOUR FEUILLE DE SUIVI -------------------------------------------
     
    Dim Lign As Integer
     
    Lign = 1
     
    While Sheets("Suivi").Range("A" & Lign).Value <> ""
     
    Lign = Lign + 1
     
    Wend
     
    Sheets("Suivi").Range("A" & Lign).Value = Me.Date_Pickup
    Sheets("Suivi").Range("B" & Lign).Value = Me.List_Mat
    Sheets("Suivi").Range("C" & Lign).Value = Me.Qte_Pickup
    Sheets("Suivi").Range("D" & Lign).Value = Me.List_Tech
    Sheets("Suivi").Range("E" & Lign).Value = "Prélèvement"
     
     
    'Envoi mail au Team Leader
     
    ' declaration des variables
     
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Dim corps As String
     
     
      Set MonOutlook = CreateObject("Outlook.Application")
     
      ' creation du message pour le destinataire
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.to = "ADRESSE MAIL"
      MonMessage.Subject = "Nouvelle Mise à jour fichier stock" & " " & "- Prélèvement -"
     
     
        corps = "Bonjour, une nouvelle saisie a été effectuée dans le fichier stock"
     
        MonMessage.body = corps
     
     
        ' envoi des mails
            MonMessage.send
     
     
       Set MonOutlook = Nothing
     
     
    '-------------------------------------------------------------- FIN MISE A JOUR FEUILLE DE SUIVI -------------------------------------------
     
     
     
     
    Unload Me 'permet de réactualiser la fenêtre UserForm
    MsgBox "Prélèvement stock enregistré.", vbExclamation
    Inventaire.Show
    End Sub
     
    Function edit_from_sheet() 'MISE A JOUR DE LA QUANTITE EN STOCK
    Dim rng1 As Range
    Dim Str_search As String
    Str_search = List_Mat.Value
    ThisWorkbook.Sheets("SHEMA STOCK").Activate
    Set rng1 = Sheets("SHEMA STOCK").Range("R:R").Find(Str_search, , xlValues, xlWhole)
    If Not rng1 Is Nothing Then
    rng1.Select
    Dim row_number As Long
    row_number = ActiveCell.Row
    ThisWorkbook.Sheets("SHEMA STOCK").Activate
    Sheets("SHEMA STOCK").Range("V" & row_number) = Sheets("SHEMA STOCK").Range("V" & row_number).Value - Qte_Pickup.Value
     
    Else
    MsgBox Str_search & "Non Trouvé"
    End If
     
     
    End Function

    En PJ la présentation de mon formulaire (je ne peux pas l'uploader).

    L'idée lorsque la ligne KIT A (comprenant Item 1 Kit A et item 2 Kit A) est sélectionnée, en cliquant sur prélèvement STOCK, les cellules correspondantes à mes items soient mises à jour.


    Merci d'avance pour votre aide.Nom : Capture.PNG
Affichages : 107
Taille : 32,4 KoNom : Capture.PNG
Affichages : 107
Taille : 32,4 KoNom : Capture.PNG
Affichages : 107
Taille : 32,4 KoNom : Capture.PNG
Affichages : 107
Taille : 32,4 Ko

    Cordialement

  2. #2
    Nouveau candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2025
    Messages : 2
    Par défaut L-2019] Mise à jour de plusieurs lignes depuis valeur ListBox
    Bonjour,
    je ne crois pas que VBA soit necessaire pourcela , tu as des fonctions excel qui le permettent : recherchev, equiv, ...
    Bon courage

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2025
    Messages : 2
    Par défaut VBA pour automatiser l'envoi des emails
    Bonjour,
    Je ne comprends pas les termes que je vois sur ce site. Je ne connais pas VBA et il semble que ce que j'aimerais faire ne peut pas être fait sans programmation.
    J'ai un classeur excel contenant des milliers de lignes de bons de commandes.A chaque ligne il y a l'email du destinataire.Je voudrais que excel envoie automatiquement à chaque destinataire, les lignes qui le concernent . Comment faire svp ?
    J'ai essayé un publipostage entre excel et word mais word envoyait à chaque correspondant autant d'emails que de BC.
    2e essai : J'ai créé un TCD en filtrant l'email.: quand je déroule le filtre, j'obtiens tous les BC liés à l'email choisi. Que faire ensuite pour envoyer tous les emails automatiquement avec les BC qui les concernent ?
    Merci d'avance ++

  4. #4
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 130
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Dans le code fourni il y a des adresses email visibles, ce qui est déconseillé sur un forum, je conseillerais donc d'éditer le message et de corriger ça
    :bug:

  5. #5
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 130
    Billets dans le blog
    2
    Par défaut
    Re,

    sinon pour la question

    L'idée lorsque la ligne KIT A (comprenant Item 1 Kit A et item 2 Kit A) est sélectionnée, en cliquant sur prélèvement STOCK, les cellules correspondantes à mes items soient mises à jour.
    Comme on ne sait pas comment les données sont organisées, ce que ça doit faire sur ces données, il m'étonnerait qu'on puisse répondre à la question à l'aveugle
    Sans fichier exemple ça va être compliqué
    :bug:

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Citation Envoyé par tototiti2008 Voir le message
    Bonjour,

    Dans le code fourni il y a des adresses email visibles, ce qui est déconseillé sur un forum, je conseillerais donc d'éditer le message et de corriger ça

    Oups !
    Merci, c'est corrigé

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Citation Envoyé par tototiti2008 Voir le message
    Re,

    sinon pour la question



    Comme on ne sait pas comment les données sont organisées, ce que ça doit faire sur ces données, il m'étonnerait qu'on puisse répondre à la question à l'aveugle
    Sans fichier exemple ça va être compliqué

    Effectivement, je comprends.
    J'ajoute une exemple de mon besoin

    L'idée :
    1- Si je sélectionne la ligne Casque dans ma listbox et que je clique sur prélèvement, la quantité est déduite de ma colonne C de l'onglet INV (ça c'est ok cela fonctionne)
    2- Si je sélectionne la ligne Casque dans ma listbox et que je clique sur entrée, la quantité est ajoutée de ma colonne C de l'onglet INV (ça c'est ok cela fonctionne)
    3- Lorsque je sélectionne depuis la listbox la ligne KIT 1, les champs sous l'intitulé Contenu KIT 1 ou KIT 2 sont mis à jour avec le contenu du kit choisi (Item 1, Item 2) (ça c'est ok cela fonctionne)
    4- Je souhaite ensuite que lorsque je clique sur le bouton KIT, les quantités des lignes correspondantes aux kit 1 ou au kit 2 soient automatiquement mises à jour (les lignes Item..... et non les lignes Kit 1 ou Kit 2)

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  8. #8
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 130
    Billets dans le blog
    2
    Par défaut
    Re,

    un truc du genre là ?
    Fichiers attachés Fichiers attachés
    :bug:

Discussions similaires

  1. [Débutant] Mise à jour de plusieurs lignes Mysql
    Par splif dans le forum VB.NET
    Réponses: 8
    Dernier message: 25/08/2019, 11h48
  2. Réponses: 2
    Dernier message: 21/09/2009, 14h20
  3. [MySQL] Mise à jours de plusieurs lignes avec mysql
    Par hakou08 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/04/2009, 20h10
  4. Mise à jour de plusieurs ligne dans un UPDATE
    Par sofien dans le forum SQL
    Réponses: 14
    Dernier message: 11/07/2008, 08h26
  5. Mise à jour de plusieurs classeurs depuis une
    Par Zak Blayde dans le forum Excel
    Réponses: 7
    Dernier message: 03/07/2008, 09h33

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