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 :

Bouton ajouter et supprimer


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Bouton ajouter et supprimer
    Bonjour,
    Je suis bien bloqué sur mes boutons Ajouter (couleur verte) et mon bouton supprimer (bouton rouge).

    En effet il y a plus de + de 10 listes et donc je n'arrive pas a intégrer ce code dans ce fichier.

    Avez vous une astuce pour avoir un seul code pour tout les boutons ajouter et un pour supprimer
    Sur mon fichier final le panier se trouve a partir de la case A69.

    Merci bien d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Ajout()
    Dim Fin As Long
    Dim vLIndex As Byte
    Dim vPlage As Range
    vLIndex = ActiveSheet.Shapes("Drop Down 1").ControlFormat.ListIndex
    Set vPlage = Range(ActiveSheet.Shapes("Drop Down 1").ControlFormat.ListFillRange)
    Fin = [A83].End(xlUp).Row
    Range("A" & Fin).Offset(1, 0) = vPlage(vLIndex)
    Range("D14:G14").Copy
    Range("D" & Fin).Offset(1, 0).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    Application.CutCopyMode = False
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Tu pourrais passer en paramètre un code ou le nom du bouton a ta procedure ajout.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Tu pourrais passer en paramètre un code ou le nom du bouton a ta procedure ajout.
    Merci pour ce message rapide, j'ai de très légère base en VB
    Le code cité provient d'un précédent coup de main

    Je ne comprend pas bien ce code et je n'arrive pas à l'intégrer à tout les boutons
    Pour un début, il me faudrait au pire un code par bouton permettant l'ajout de la ligne.
    Je n'arrive pas à faire comprendre au code qu'il faut qu'il copie les cellules A14 à G14 dans les cellules A69 à G69 puis qu'il fasse une incrémentation pour éviter que le nouvel ajout n'écrase le précédent.

    Je pense que le plus dur est de copier le contenu de la liste selectionné

    As tu un bout de code simple pour gérer celà ?

    Merci d'avance

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Le principe serait d'appeler la procedure ajout en lui envoyant un paramètre qui serait par exemple la référnce de la cellule montant de la ligne a copier

    Ensuite dans le code Ajout on se basera sur cette référene pour copier les données.

    Je regarde pour te faire un exemple

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    La procedure Ajout

    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
     
     
    Sub Ajout(Ref As Range)
    Dim i As Long
    Dim RefDeb As Range
    'Recherche la prochaine ligne disponible pour insertion
    i = 69
    Do While Range("A" & i).Value <> ""
        i = i + 1
    Loop
     
    Set RefDeb = Cells(Ref.Row, Ref.Column - 3)
    Range(RefDeb.Address & ":" & Ref.Address).Copy
     
    Cells(i, 4).PasteSpecial (xlPasteValues)
     
    End Sub
    Pour appeler la procedure, on donne un parametre la reference de la cellule montant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CommandButton1_Click()
    Call Ajout(Range("G14"))
    End Sub

  6. #6
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour les Désignations, je te conseil de remplacer les combobox par une liste apartenant a la cellule
    Voir dans le menu Données / Validation / liste
    Il te suffira ainsi de prendre une cellule de plus a gauche et de copier la désignation en même temps

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Pour les Désignations, je te conseil de remplacer les combobox par une liste apartenant a la cellule
    Voir dans le menu Données / Validation / liste
    Il te suffira ainsi de prendre une cellule de plus a gauche et de copier la désignation en même temps
    Le problème avec la validation des données est que je ne peux pas selectionner la plage de cellule qui est sur la feuille "Liste" de mon fichier.
    De plus, je ne pourrais pas lui faire sortir le numéro SAP et l'utilisateur ne pourra pas rentrer la quantité

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    La procedure Ajout

    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
     
     
    Sub Ajout(Ref As Range)
    Dim i As Long
    Dim RefDeb As Range
    'Recherche la prochaine ligne disponible pour insertion
    i = 69
    Do While Range("A" & i).Value <> ""
        i = i + 1
    Loop
     
    Set RefDeb = Cells(Ref.Row, Ref.Column - 3)
    Range(RefDeb.Address & ":" & Ref.Address).Copy
     
    Cells(i, 4).PasteSpecial (xlPasteValues)
     
    End Sub
    Pour appeler la procedure, on donne un parametre la reference de la cellule montant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CommandButton1_Click()
    Call Ajout(Range("G14"))
    End Sub
    Pour ce code ça marche nickel, il faut juste que j'incrémente une cellule qui jouera le role de compteur afin d'éviter que la ligne ajouter dans le panier ne s'écrase. C'est le bon raisonnement ?

  9. #9
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Le problème avec la validation des données est que je ne peux pas selectionner la plage de cellule qui est sur la feuille "Liste" de mon fichier.
    De plus, je ne pourrais pas lui faire sortir le numéro SAP et l'utilisateur ne pourra pas rentrer la quantité
    Tu peux faire une liste en utilisant la feuille liste, si tu mets tes cellules dasn une "plage nommée"

    Pour ce code ça marche nickel, il faut juste que j'incrémente une cellule qui jouera le role de compteur afin d'éviter que la ligne ajouter dans le panier ne s'écrase. C'est le bon raisonnement ?
    Les données ne seront plus écrasé queand il y aura la désignation

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Tu peux faire une liste en utilisant la feuille liste, si tu mets tes cellules dasn une "plage nommée"


    Les données ne seront plus écrasé queand il y aura la désignation
    DSL de t'embêter mais c'est quoi une plage nommée ?

    J'ai un bout de code pour le bouton supprimer
    Il marche bien mais si l'utilisateur clique sur annuler, il y a un message d'erreur

    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
    Private Sub supprimer_Click()
     
    1 Set nom = Application.InputBox("Sélectionnez la Désignation d'un article à effacer !", "Effacer", Type:=8)
    If nom.Column() = "1" Then
        laplage = nom.Row
        With Feuil1
             .Cells(laplage, 1).ClearContents
             .Cells(laplage, 4).ClearContents
             .Cells(laplage, 5).ClearContents
             .Cells(laplage, 6).ClearContents
             .Cells(laplage, 7).ClearContents
     
        End With
    Else
     
    MsgBox ("Vous devez sélectionner une Désignation !!!")
    GoTo 1
    End If
     
    End Sub

  11. #11
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour faire une plage nommée, tu sélectionnes tes cellules et tu leur donne un nom.(A gauche de la ligne des formules)

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Pour faire une plage nommée, tu sélectionnes tes cellules et tu leur donne un nom.(A gauche de la ligne des formules)
    D'accord, une fois la plage nommé créé, comment fais tu pour l'intégrer dans la validation des données. J'ai essayé de mettre le nom de ma plage nommée mais ça ne fonctionne pas

  13. #13
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Dans validation tu choiis liste puis

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Dans validation tu choiis liste puis
    Ok merci,
    Avec la validation des données, y a t'il un moyen de pouvoir faire remonter le n° SAP et le prix comme avec l'ancienne méthode ?

  15. #15
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    En utilisant Recherchev

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    En utilisant Recherchev
    J'ai fait le test a utilisant ton code sur le bouton de la 2e liste mais la variable i ne s'incrémente pas car quand j'ajoute un 2e article, il s'écrase sur le premier. cf piece jointe

    Pour la validation des données, je vais laissé le système existant, il n'y aura que le n° SAP, le prix, la qte et le total qui seront dans le panier. Car c'est vraiment plus dur avec recherchev
    Fichiers attachés Fichiers attachés

  17. #17
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Ca écrasera tant qu'il n'y aura rien dans la colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Do While Range("A" & i).Value <> ""
        i = i + 1
    Loop

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Une dernière question, sais tu pourquoi les cellules K16 et L16 sont HS ? ainsi que les K18, L18 et que les K20 et L20
    J'ai vérifié plusieurs fois la formule mais tout parrait ok
    Fichiers attachés Fichiers attachés

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Re, j'ai résolu le problème des cellules, une seule question me vient à l'esprit :
    sur mon fichier il y a 2 listes (une à gauche l'autre à droite)
    Lorsque l'on fait appel à la procedure "Ajout", j'ai une boucle qui copie de la cellule D à G.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Range("D" & i).Value <> ""
    Le problème est que sur les listes de droite commençant par les cellules K, celà ne fonctionne pas. J'ai donc créé une autre procedure "Ajout2"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Range("K" & i).Value <> ""
    Au final il y a soucis lors de l'ajout des cellules de la liste de droite tournant sous la procedure Ajout2 car la variable i ne n'incrémente pas et du coup tout s'écrase sur la premiere ligne du panier

    Help, que dois je faire.
    Est ce que je peu déclarer une variable unique au 2 procedures qui ferrait office de compteur ?
    Fichiers attachés Fichiers attachés

  20. #20
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonsoir,

    Pas regardé les messages précédents, ni les éventuels documents joints, mais voici le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Appel
        Boucle "D"
    End Sub
     
    Sub Boucle(RefCol as String)
    ' Début
            Do While Range(RefCol & i).Value <> ""
    ' Suite et fin
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. boutons mobiles pour ajouter ou supprimer des colonnes
    Par jnowe dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2010, 15h03
  2. [WD-2007] Case bouton qui ajoute ou supprime un champ
    Par Pepitos dans le forum Word
    Réponses: 14
    Dernier message: 13/06/2010, 02h11
  3. PHP_EOL à coté des boutons "ajouter" et "supprimer"
    Par Flipmode dans le forum Langage
    Réponses: 1
    Dernier message: 17/11/2008, 16h51
  4. [DisplayTag] bouton ajouter et supprimer
    Par newmar dans le forum Struts 1
    Réponses: 7
    Dernier message: 02/05/2008, 14h43

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