Microsoft 365 problème relation combobox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dubarre

XLDnaute Occasionnel
Bonjour à tous Je viens vers vous car j'ai un petit souci j'aurais besoin de votre aide s'il vous plaît dans mon classeur Excel j'ai un bouton envoyé courrier qui me permets d'envoyer l'adresse sur word le probléme que se passe avec la civilité je n'arrive pas à faire respecter mon souhait qui est par exemple : monsieur soit transformé en M. Et aussi madame en Mme et Mademoiselle Mle Je vous transmets le code vba.

quand vous êtes sur VBA ouvrir le "userform2" et le code se trouve sur le bouton "envoyer courrier"

en vous remerciant d'avance.

VB:
Dim Wapp As Object, X$
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Wapp.Documents.Open ThisWorkbook.Path & "\Courrier_Type_Artiste.docm" 'nom à adapter
With Wapp.ActiveDocument
    .Bookmarks("Date").Range = Date
'    X = Replace(Replace(Replace(CbxCivilite, "Monsieur", "M."), "Madame", "Mme"), "Mlle", "Mademoiselle")
    .Bookmarks("Civilite1").Range = "M."
    .Bookmarks("Civilite2").Range = CbxCivilite
    .Bookmarks("Civilite3").Range = CbxCivilite
    .Bookmarks("Nom").Range = TextBox2 & " " & TextBox24
    .Bookmarks("Adresse").Range = Mid(IIf(TextBox3 = "", "", vbLf & TextBox3) & IIf(TextBox4 = "", "", vbLf & TextBox4) _
        & IIf(TextBox5 = "", "", vbLf & TextBox5) & IIf(TextBox6 = "", "", vbLf & TextBox6), 2) & vbLf & TextBox7 & " " & TextBox25 _
        & IIf(TextBox8 = "", "", vbLf & TextBox8)

End With
'AppActivate "Word" 'facultatif
Wapp.Visible = True
Wapp.Activate
 

Pièces jointes

Solution
re
donc tu as
VB:
'COMBOBOX CIVILITE
    With .CbxCivilite
        .AddItem "M."       
        .AddItem "Mme"        
        .AddItem "Mlle"      
   End With
puis donc :
VB:
Private Sub CommandButton6_Click()

Dim Wapp As Object, X$
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
With Me.CbxCivilite
    X = .List(.ListIndex, 0) '---> ICI
End With
Wapp.Documents.Open ThisWorkbook.Path & "\Courrier_Type_Artiste2.docm" 'nom à adapter
With Wapp.ActiveDocument
    .Bookmarks("Date").Range = Date   
    .Bookmarks("Civilite1").Range = X
    .Bookmarks("Civilite2").Range = X
    .Bookmarks("Civilite3").Range = X...
Bonjour dubarre
Bonjour le Fil,le Forum
petite question
tu veux a partir du Combobox des Civilités qui contient "M.,Mme,Melle "remplacé ces valeurs par leur équivalent soit "Monsieur ,Madame,Mademoiselle" ?
car dans ton post c'est l'inverse et dans la procédure c'est ça!
c'est ça ?
merci
jean marie
 
Re
si c'est Ok
j'ai mis dans Userform_Initialize
VB:
'COMBOBOX CIVILITE
    With .CbxCivilite
        .ColumnCount = 2
        .ColumnWidths = "1;0"
        .AddItem "M."
        .List(.ListCount - 1, 1) = "Monsieur"
        .AddItem "Mme"
        .List(.ListCount - 1, 1) = "Madame"
        .AddItem "Mlle"
        .List(.ListCount - 1, 1) = "Mademoiselle"
   End With
puis dans la procédure du Bouton
VB:
Private Sub CommandButton6_Click()

Dim Wapp As Object, X$
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
With Me.CbxCivilite
    X = .List(.ListIndex, 1) '---> ICI
End With
Wapp.Documents.Open ThisWorkbook.Path & "\Courrier_Type_Artiste2.docm" 'nom à adapter
With Wapp.ActiveDocument
    .Bookmarks("Date").Range = Date    
    .Bookmarks("Civilite1").Range = X
    .Bookmarks("Civilite2").Range = X
    .Bookmarks("Civilite3").Range = X
    .Bookmarks("Nom").Range = TextBox24 & " " & TextBox2
    .Bookmarks("Adresse").Range = Mid(IIf(TextBox3 = "", "", vbLf & TextBox3) & IIf(TextBox4 = "", "", vbLf & TextBox4) _
        & IIf(TextBox5 = "", "", vbLf & TextBox5) & IIf(TextBox6 = "", "", vbLf & TextBox6), 2) & vbLf & TextBox7 & " " & TextBox25 _
        & IIf(TextBox8 = "", "", vbLf & TextBox8)

End With
'AppActivate "Word" 'facultatif
Wapp.Visible = True
Wapp.Activate
End Sub
En espérant avoir compris si non je modifierai !
jean marie
 
bonjour à toi merci de te pencher sur mon problème en fait c'est l'inverse

le probleme et que certaines fois il met M. Et d'autres fois il met monsieur alors que je voudrais qu'il mette uniquement M. Où Mme ou Mle uniquement ce qu'il y a marqué sur la combobox s'il vous plaît
 
re
donc tu as
VB:
'COMBOBOX CIVILITE
    With .CbxCivilite
        .AddItem "M."       
        .AddItem "Mme"        
        .AddItem "Mlle"      
   End With
puis donc :
VB:
Private Sub CommandButton6_Click()

Dim Wapp As Object, X$
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
With Me.CbxCivilite
    X = .List(.ListIndex, 0) '---> ICI
End With
Wapp.Documents.Open ThisWorkbook.Path & "\Courrier_Type_Artiste2.docm" 'nom à adapter
With Wapp.ActiveDocument
    .Bookmarks("Date").Range = Date   
    .Bookmarks("Civilite1").Range = X
    .Bookmarks("Civilite2").Range = X
    .Bookmarks("Civilite3").Range = X
    .Bookmarks("Nom").Range = TextBox24 & " " & TextBox2
    .Bookmarks("Adresse").Range = Mid(IIf(TextBox3 = "", "", vbLf & TextBox3) & IIf(TextBox4 = "", "", vbLf & TextBox4) _
        & IIf(TextBox5 = "", "", vbLf & TextBox5) & IIf(TextBox6 = "", "", vbLf & TextBox6), 2) & vbLf & TextBox7 & " " & TextBox25 _
        & IIf(TextBox8 = "", "", vbLf & TextBox8)
End With
'AppActivate "Word" 'facultatif
Wapp.Visible = True
Wapp.Activate
End Sub
jean marie
 
super ça fonctionne correctement merci de ton aide.

je voudrais te solliciter pour un autre petit truc concernant le classeur

sur le courrier type j'ai une autre question quand il met l'adresse soit de 4 lignes ou de 7 lignes la date qui est en dessous est-il possible de la bloquer au niveau que je souhaite s'il vous plaît
 
voici deux exemples dans la première image le tracé jaune montre la limite du niveau de la date dans la seconde image la date les plus au même niveau par rapport à la mesure de la règle à gauche j'ai fourni dans le premier paragraphe le classeur word où se trouve la date qui est relié au classeur Excel en lançant l'ouverture du userform2 en cliquant sur le bouton envoyer courrier le classeur Word s'ouvre et vous pourrez voir la date à ce niveau-là
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    158.2 KB · Affichages: 11
  • Capture2.JPG
    Capture2.JPG
    163.5 KB · Affichages: 10
Re
si j'ai bien compris dans l'image 1 la ville et la date sont au niveau 5
et dans l'autre au Niveau 7
mais ce Niveau dépends du nombre de Lignes de L'adresse.
il faudrait donc positionner(remonter) l'adresse de telle façon que l'on puis respecter la Ligne 5 pour pour la Ville et la date.
je ne sais pas si l'on peut positionner plus haut le Début de L'adresse (Civilité etc etc dessous)

jean marie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
896
H
Réponses
3
Affichages
1 K
HugoB99
H
Retour