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 :

Boutton en bout de ligne pour action transfert ligne + couleur


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Boutton en bout de ligne pour action transfert ligne + couleur
    Bonjour, tout d'abord bonne journée à la communauté !

    J'ai besoins de votre aide pour un probléme qui persiste. J'ai une feuille"analyser" une feuille "acccepter" puis uen feuille "refuser"

    Chaque lignes dans la feuille "analyse" ( 7 colonne remplis ) la 8 éme c'est un bouton qui apres dis : accepter ou refuser ? Je voudrai que si je selectionne accepter alors la ligne se colore en vert et se copie dans la feuille accepter. Et vous l'aurez bien compris si je selectionne refusé c'est rouge et la ligne est copier dans la feuille "refusé"

    POurriez-vious m'éguillez sur le code a faire ? Cela est tres important et je ne trouve pas de solution. Avez vous une idée ? un code ? Merci merci

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Quelques questions :
    • Les boutons sur la feuille sont issus des "Contrôles ActiveX"
    • Le nombre de boutons évolue dans le temps ?
    • Les boutons "Accepter" et "Refuser" sont sur un UserForm ?
    • Après avoir accepté ou refusé le choix doit être figé ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Merci Fring de m'aider a résoudre mon probléme. Alors tout d'abord je ne sais pas faire la différence entre des bouton controle " normaux" et des controle " active X" pour ma part j'ai toujours utilisé les bouton de controle " normaux".

    Le top ça serai d'avoir une colonne qui fasse toujours " voulez vous accepter ou refuser la demande ". Avec le temps il y aura peutétre 500 demande donc je pense que le mieux serai qu'a la colonne G ( par exemple ) il y ai toujours le choix accepter ou refuser et que si on fais accepter en G toute la ligne se met en verte et BIM elle se copie dans la feuille "accepter" et enversement avec la couleur rouge dans la feuille " refuser".

    Oui le choix est figé. Dans le sens où c'est sois l'un sois l'autre. Aprés dans le temps le choix ne pourra pas changer en tout cas pour la ligne.

    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
    Sub Bouton1_Cliquer()
        Dim dernLigneAcc As Integer
        Dim dernLigneRefus As Integer
        For j = 1 To ActiveSheet.Range("A65536").End(xlUp).Row
            If ActiveSheet.Range("G" & j).Value = "Accepté" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 4 Then
                dernLigneAcc = Sheets("accepter").Range("A65536").End(xlUp).Row
                For i = 0 To 6
                    Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
                    ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 4
                Next
                Sheets("accepter").Range("A" & dernLigneAcc + 1).Offset(0, 6).Value = Now
            ElseIf ActiveSheet.Range("G" & j).Value = "Refusé" And ActiveSheet.Range("G" & j).Interior.ColorIndex <> 3 Then
                dernLigneRefus = Sheets("refuser").Range("A65536").End(xlUp).Row
                For i = 0 To 6
                    Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, i).Value = ActiveSheet.Range("A" & j).Offset(0, i).Value
                    ActiveSheet.Range("A" & j).Offset(0, i).Interior.ColorIndex = 3
                Next
                Sheets("refuser").Range("A" & dernLigneRefus + 1).Offset(0, 6).Value = Now
            End If
        Next
    End Sub
    maintenant le probléme avec ce code c'est que je n'arrive pas a rajouter et la colonne ne se met pas verte ou noir en fonction de la cellule G ( par exemple ca c'est elle qui donne l'ordre).

    Je suis braqué son mon ordi en attendant ta réponse. Merci encore

    Je me suis renseigner et j'ai trouvé ça

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Perso je ferais quelque chose de plus simple sans passer par des boutons en insérant, dans la colonne H, un A pour "accepter" et un R pour "refuser".

    Ce qui permettrait de plus facilement gérer les actions via les macros évènementielles de la feuille.

    Fais un essai un insérant ces deux bouts de code dans le module de ta feuille "Analyser"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'afin de figer le choix dans la colonne H
    If Target.Column = 8 Then
        If Target.Value <> "" Then Target.Offset(1, 0).Select
    End If
    End Sub
    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 Worksheet_Change(ByVal Target As Range)
    If Target.Column = 8 Then
        Select Case UCase(Target.Value)
            Case "A"
                With Range(Cells(Target.Row, 1), Cells(Target.Row, 7))
                    .Copy Sheets("Accepter").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
                    .Interior.Color = vbGreen
                End With
                Target.Value = "A"
            Case "R"
                With Range(Cells(Target.Row, 1), Cells(Target.Row, 7))
                    .Copy Sheets("Refuser").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
                    .Interior.Color = vbRed
                End With
                Target.Value = "R"
            Case Else
                Target.ClearContents
        End Select
    End If
    End Sub

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/01/2011, 11h42
  2. Réponses: 2
    Dernier message: 17/09/2009, 11h02
  3. Réponses: 5
    Dernier message: 01/12/2008, 15h20
  4. [TDBGrid] Multisélection de lignes pour suppression
    Par littledoudou dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/11/2003, 11h42
  5. Réponses: 2
    Dernier message: 08/08/2003, 18h30

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