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 :

VBA - Création d'un "sélecteur de cellule" pour remise de chèque (la coloration transonglette)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Octobre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2017
    Messages : 24
    Points : 17
    Points
    17
    Par défaut VBA - Création d'un "sélecteur de cellule" pour remise de chèque (la coloration transonglette)
    Bonjour à tous,

    voici mon défi du jour.
    Dans le fichier ci-joint (ColorationTransOnglette.xlsm) j'ai douze onglets (un par mois) réunissant un récapitulatif de consultations thérapeutiques (les noms sont fictifs bien surs), avec nom (intitutlé), montant, numéro de chèque, etc.

    Lorsqu'on clique sur le petit icone de chèque en haut à droite, un userform s'ouvre, destiné à récapituler dans sa listbox les chèques que l'utilisateur aura sélectionné avec un click de souris pour générer une remise de chèque automatique.

    Je souhaiterai faire en sorte que : dès que l'userform est activé, un click sur un numéro de chèque transforme la couleur de la cellule contenant ce numéro, qu'au besoin un autre click fasse repasser cette couleur en blanc, et surtout que cette coloration des cellules à sélectionner pour la remise de chèque soit possible sur plusieurs feuille en même temps. L'idée étant de pouvoir créer une remise de chèque intégrant des chèques du mois précédent...

    PLUS SIMPLEMENT: userform ouvert: a chaque click sur un numéro de chèque la cellule passe en couleur sur l'ensemble des feuilles qu'on souhaite.

    Quelqu'un a t'il une piste car je reste soit bloqué par l'événement unique d'un worksheet avec sn selectionchange, soit bloqué par une procédure que je n'arrive pas à rendre dynamqieu( lorsqu'on click...).

    La suite que j'entrevois évidemment, c'est de boucler pour chaque feuille la récupération des informations sur la ligne correspondante à une cellule de couleur, les intégrer dans une variable tableau puis dans une listbox et de tout coller pour imprimer, puis de repasser automatiquement les cellules en blancs en fermant le formulaire ou le classeur.

    Eh bien si quelqu'un a le gout, la motivation, le génie, la fougue...Je suis preneur pour cette "coloration trans-onglette".

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Je n'ai pas tout à fait compris la destination des userforms, mais voici toujours un début de solution pour la colorisation du client sélectionné sur toutes les feuilles:
    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
    Sub MemeClient(cR As Range)                            '--- à placer dans un module
       Dim wSh As Worksheet, sNom As String, kR As Long
       Debug.Print cR.Address, cR.Value
       SendKeys "{ESC}"
       sNom = cR.Value
       For Each wSh In Worksheets
          kR = 3
          With wSh
             While .Cells(kR, 2) <> ""           '--- s'arrête dès qu'il y a une cellule est vide
                If .Cells(kR, 2) = sNom Then     '--- nom rencontré = nom du patient
                   With .Cells(kR, 2).Interior
                      .Pattern = xlSolid
                      .Color = 10092441
                   End With
                   '--- et ajouter ce qu'il faut pour utiliser les données de cette ligne
                Else
                   .Cells(kR, 2).Interior.Pattern = xlNone
                End If
                kR = kR + 1
             Wend
          End With
       Next wSh
    End Sub
    et ensuite dans chaque feuille, ajouter le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       MemeClient Target
    End Sub
    Le double-clic me semble nettement préférable au clic normal.
    Pour que tous les noms soient désélectionnés, il suffit de double cliquer une cellule vide.
    Attention que les noms soient bien identiques dans toutes les feuilles (Dampart <> Dampart 2).
    Bonne continuation.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2018, 18h42
  2. [VBA-E]changer le format d'une cellule dans un spreadsheet
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 13/02/2006, 11h12
  3. [VBA]effacer les espaces à ralonge dans des cellules
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 11h00
  4. [VBA-E] Image d'une plage de cellule
    Par flogreg dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/07/2004, 12h30

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