Microsoft 365 ComBox directement dans la feuille

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
J'espère que vous allez bien et je vous souhaite un beau et bon WE :)

Sur les conseils toujours avisés de Job75, j'ai créé une ComboBox directement dans ma feuille de travail :)

Mais je n'arrive pas à coder pour répondre à mes besoins :
J'aurais besoin que :

J'aurais besoin que :
si message sélectionné dans "Rappels"

1 quand clic dans cellules colonne "J" : la liste "Rappels" s'affiche
et je sélectionne un message qui est écrit dans la cellule cliquée après les msg déjà existants
2 la liste "OK Rappels" s'affiche et le msg sélectionné est écrit dans la cellule après les msg déjà existants
3 enfin, la liste déroulante se vide

si message sélectionné dans "NE PAS RAPPELER"
1 quand clic dans cellules colonne "J" : la liste déroute s'affiche
et je sélectionne un message qui est écrit dans la cellule cliquée après les msg déjà existants
2 la liste déroulante se vide.

Pourriez-vous m'aider ?
Je joins le fichier test.

Avec mes remerciements,
lionel,
 

Pièces jointes

  • ComboBox.xlsm
    20.6 KB · Affichages: 27
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée,
Cher Gérard :
"ça fonctionne super bien et toujours pas de blocage ni ralentissement sur l'ordi de Charlotte. :) grâce à toi . Mercis et Mercis vraiment :)"
Toujours d'actualité à ce jour ... génial :)

Pardon Gérard de revenir encore sur le sujet mais j'ai encore un petit souci :
Pour ne pas alourdir "ma z'usine à gaz" déjà lourde, j'aimerais me passer de l'onglet qui permet les affectations et, ayant déjà bcp de codes dans ma feuille de travail, intégrer directement le code en le mettant dans un module standard à exécuter avec un change "R"... et je n'y arrive pas :mad:

voici le code de la feuille que je voudrais mettre dans un module standard :
VB:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ComboBox1
    .Visible = False
    If Intersect(ActiveCell, [J4:J31]) Is Nothing Then Exit Sub
    .Left = ActiveCell.Left - .Width 'affichage à gauche de la cellule
    .Top = ActiveCell.Top
    .List = Array("RAPPELS", "NE PAS RAPPELER", "<effacer>")
    .Visible = True
    Application.OnTime 1, Me.CodeName & ".Deroule"
End With
End Sub

Private Sub Combobox1_Change()
Dim dat$
With ComboBox1
    If .ListIndex = -1 Then .Text = "": Exit Sub
    If .Text = "RAPPELS" Then
        .List = [Rappels].Value
    ElseIf .Text = "NE PAS RAPPELER" Then
        .List = [Ne_pas_Rappeler].Value
    ElseIf .Text = "<effacer>" And ActiveCell <> "" Then
        ActiveCell = Left(ActiveCell, Len(ActiveCell) - 1)
        ActiveCell = Left(ActiveCell, InStrRev(ActiveCell, "-"))
    ElseIf IsError(Application.Match(.Text, [Rappels], 0)) Then
        dat = Format(Date, "dd/mm/yy")
        ActiveCell = Trim(ActiveCell & " " & IIf(InStr(ActiveCell, dat), "", dat & " - ") & .Text & " -")
        [A1].Select 'la ComboBox se masque
    Else
        dat = Format(Date, "dd/mm/yy")
        ActiveCell = Trim(ActiveCell & " " & IIf(InStr(ActiveCell, dat), "", dat & " - ") & .Text & " -")
        .List = [OKRappels].Value
    End If
End With
ActiveCell.Activate
Application.OnTime 1, Me.CodeName & ".Deroule"
End Sub

Sub Deroule()
With ComboBox1
    If .Visible Then .Text = "": .Activate: .DropDown 'déroule la liste
End With
End Sub

Encore merci par avance pour cet éventuel nouveau coup de (main) de code :)
Je continue à tenter de le faire,
lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard,
Merci pour m'avoir répondu encore une fois :)
Effectivement lol y'a assez de gaz dans mon usine :)
Je garde donc le code dans la feuille.

Dans un 1er temps, pour avoir tout dans la même feuille, j'avais quand même tenté de mettre le code de la feuille "Affectations" dans ma feuille "SuivisAppels" mais ça ne fonctionnait pas car les codes "Target" et "R" entrent en conflits.

J'ai modifié le code Target en "R" et le fichier joint fonctionne. je vais donc l'intégrer comme ça dans le code de ma feuille "SuivisAppels".

Je te souhaite une bonne journée,
lionel,
 

Pièces jointes

  • isitelProsp_Cbbox_baseR.xlsm
    27.3 KB · Affichages: 4

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir Gérard, le Forum,
j'espère que toutes et tous, vous allez bien et profitez du beau temps :)

@ Gérard,
Je suis un peu gêné de revenir encore sur ce fil ... mais je pense que cette fois, ce sera le dernière :)

Nous travaillons actuellement avec ce que tu as eu la gentillesse de me donner et ça fonctionne toujours super bien sans aucun problème ... encore Mercisssssss :)

J'ai eu le temps d'étudier le fonctionnement et quel serait l'utilisation qui me semble la plus légère dans notre fichier.
J'en suis arrivé au fichier test joint
Mais il me faut "équiper" ton code de conditions et je n'y arrive pas :mad:
Voici ce que je souhaite mettre en place :

Je voudrais que le code réagisse comme suit en supposant que les cellules en col I contiennent
Répondeur = code exit sub
A Rappeler = affiche le menu "RAPPELS"
Ne pas Rappeler = affiche le menu "NE PAS RAPPELER"

Voudrais-tu m'aider encore une fois ?
En cas, je joins le fichier test.
En attendant, je continue à bidouiller ..... lol
Merci encore une fois,
lionel,
 

Pièces jointes

  • isitelProsp_Cbbox_baseR.xlsm
    28.6 KB · Affichages: 2

job75

XLDnaute Barbatruc
Bonjour Lionel,

C'est bien différent de ce qui a été fait précédemment : mettre ces valeurs en colonne I me paraît un non sens.

Et avec r.count = 1 il y a bug si l'on sélectionne toutes les cellules de la feuille, il faut r.CountLarge.

A+
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard, le Forum,
Je vous souhaite un beau dimanche :)
Désolé de ne pas avoir répondu hier, j'ai eu un souci informatique.
"C'est bien différent de ce qui a été fait précédemment."
Oui c'est un peu différent car intégrer directement la combobox dans ma feuille de travail serait le "plus direct" et allégerait mon fichier d'une feuille.

"mettre ces valeurs en colonne I me paraît un non sens."
Je comprends ta réaction mais ce n'est pas le cas :
Voici comment fonctionne ma feuille de travail :
1 - clic dans la col I = un UserForm s'ouvre :
Sans titre.jpg

Je sélectionne au choix
Répondeur
A Rappeler
Ne pas Rappeler

2 - sauf si j'ai sélectionné "Répondeur", le menu correspondant à ma sélection s'ouvre
Répondeur = code exit sub
A Rappeler = affiche le menu "RAPPELS"
Ne pas Rappeler = affiche le menu "NE PAS RAPPELER"
et quand j'ai fait mes ou mon choix dans le menu déroulant, le commentaire existant + le nouveau s'affichent en col J

Dans le fichier joint, ce que j'ai fait en partant de ton code fonctionne.
Il me reste à trouver comment mettre les conditions :
Répondeur = code exit sub ........................................................ ça c'est bon
A Rappeler = affiche le menu "RAPPELS"
Ne pas Rappeler = affiche le menu "NE PAS RAPPELER"
Je joins le fichier et je continue à chercher :)
lionel,
 

Pièces jointes

  • isitelProsp_Cbbox_baseR1.xlsm
    29.5 KB · Affichages: 2
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)
J'ai réussi à atteindre mon objectif ;)
Mettre le code dans ma feuille de travail.
Et c'est bon.
reste qq petits réglages avec les "-" et espaces ... mais ça fonctionne.
Je joins le fichier test.
Bonne fin de journée,
lionel,
 

Pièces jointes

  • isitelProsp_Cbbox_baseR1.xlsm
    30.4 KB · Affichages: 6
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 042
Messages
2 084 829
Membres
102 685
dernier inscrit
med_remi021