XL 2016 MsgBox sur plusieurs lignes

Scorpio

XLDnaute Impliqué
Bonjour à tous et bonne fête de Pâques
J'ai un MsgBox, et je voudrais mettre 1 message sur 1 ligne et l'autre message sur 1 ligne.
J'ai mis "&" "&" entre les 2 messages, mais rien y fait.


If MsgBox("Contrôle des cellules I et J, doit-être vide..." & " " & "Transférer des lignes seulement en rouge...", vbQuestion + vbYesNo) = vbYes Then


Pourriez-vous'il vous plaît me donner un petit coup de pouce…, merci
A+++
 

VIARD

XLDnaute Impliqué
Salut Scorpio

Ton affaire ne s'annonce pas évidente, il faut un fichier réduit avec les feuilles concernées.
comme ça je ne vois pas.
Je te replace le module indenté pour une meilleurs visibilité.

VB:
'=====================
Sub DepLigneCouleur()
Dim cel As Range 'd?clare la variable cel (CELlule)
Dim dercel As Range 'd?clare la variable dest (DESTination)
Dim dl As Long 'd?clare la variable dl (Derni?re Ligne)
Dim x As Long 'd?clare la variable x

'If MsgBox("1.Contr?le cellule I et J, doit ?tre vide. 2.Transf?rer des lignes seulement en rouge...", vbQuestion + vbYesNo) = vbYes Then
If MsgBox("Contr?le cellule I et J, doit ?tre vide..." & " " & "Transf?rer des lignes seulement en rouge...", vbQuestion + vbYesNo) = vbYes Then
    Application.ScreenUpdating = False 'masque les changements ? l'?cran
    With Sheets("FactureOuverte") 'prend en compte l'onglet "FactureOuverte"
        dl = .Range("A65536").End(xlUp).Row 'd?finit la variable dl
'------------- boucle invers?e sur toutes les cellules ?dit?es de la colonne A (de la derni?re ? la premi?re)
        For Each cel In .Range("A2:A" & dl)
'------------- condition 1 : si la couleur de la cellule est rouge
            If cel.Font.ColorIndex = 3 Then 'rouge
                Set dercel = Sheets("FacturePay?").Range("A65536").End(xlUp)
                cel.EntireRow.Cut dercel(2) 'coupe et colle la ligne
                dercel(2).Resize(1, 8).Value = dercel(2).Resize(1, 8).Value 'Supprime les formules jusqu'? colonne 9
                dercel(2).Resize(1, 8).Validation.Delete 'Supprime les validations jusqu'? colonne 9
            End If
        Next cel
'----------- boucle invers?e sur toutes les cellules ?dit?es de la colonne A (de la derni?re ? la premi?re)
        For x = dl To 2 Step -1
'----------- condition 1 : si cellule est vide
            If .Cells(x, 1).Value = "" Then
                .Rows(x).Delete Shift:=xlShiftUp 'Supprime la ligne
            End If
        Next x
    End With
'----------- Application.ScreenUpdating = True 'affiche les changements ? l'?cran
'----------- Trie la feuil2 de A ? Z
    Range("A2:H65536").Select
    ActiveWorkbook.Worksheets("FacturePay?").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("FacturePay?").Sort.SortFields.Add Key:=Range("F2"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("FacturePay?").Sort
        .SetRange Range("A2:H65536")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("FacturePay?").Activate
    Sheets("FacturePay?").Range("A1").Select
    Sheets("FactureOuverte").Activate
    Range("B1").Select
End If
Application.ScreenUpdating = True
End Sub
'===================
Si quelqu'un peut voir de plus prêt.
A+ Jean-Paul
 

VIARD

XLDnaute Impliqué
Scorpio

Ton problème ne vient pas du "Msgbox" met le en commentaire et relance la procédure.
Et note le message d'erreur, et la ligne incriminée, éventuellement active le pas à pas pour cerner le défaut.

A+ Jean-Paul
 
C

Compte Supprimé 979

Guest
Bonjour le fil, Scorpio

Pour mettre un message sur plusieurs lignes on utilise le caractère de retour forcé
VB:
VbCr

Code:
If MsgBox("Contrôle cellule I et J, doit être vide..." & vbCr _
  & "Transférer des lignes seulement en rouge...", vbQuestion + vbYesNo) = vbYes Then

A+
 

Scorpio

XLDnaute Impliqué
Scorpio

Ton problème ne vient pas du "Msgbox" met le en commentaire et relance la procédure.
Et note le message d'erreur, et la ligne incriminée, éventuellement active le pas à pas pour cerner le défaut.

A+ Jean-Paul
Re salut VIARD
Voici le fichier
J'ai fait le control pas a pas du code, mais pas d'erreur.
J'ai reçu entre temps une réponde de BrunoM45, que je salue, et il me semble que pour moi ca marche.
 

Pièces jointes

  • PayerFacture.xlsm
    58.9 KB · Affichages: 8

Scorpio

XLDnaute Impliqué
Bonjour le fil, Scorpio

Pour mettre un message sur plusieurs lignes on utilise le caractère de retour forcé
VB:
VbCr

Code:
If MsgBox("Contrôle cellule I et J, doit être vide..." & vbCr _
  & "Transférer des lignes seulement en rouge...", vbQuestion + vbYesNo) = vbYes Then

A+
Salut BrunoM45,
J'ai placer cette ligne et apparemment, pour moi, c'est bon.
Je t'en remercie
A+++
 

Discussions similaires

Statistiques des forums

Discussions
312 110
Messages
2 085 388
Membres
102 882
dernier inscrit
Sultan94