MsgBox du contenu d'une cellule résultant des contenus de 2 autres cellules
arsene53
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
arsene53 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
arsene53 Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis un débutant en vba et j’ai quelques soucis pour afficher à l’écran, par MsgBox, le contenu d’une cellule résultant des contenus de 2 autres cellules.
En effet, je dispose d’un fichier excel dont les cellules contiennent des chiffres et à certains endroits des lettres et des dates.
Pour une ligne donnée lue sur la feuille de calcul et à partir de 2 cellules, je souhaiterais afficher à l’écran le contenu d’une 3ème cellule résultant des contenus des 2(deux) 1ères cellules. Cette 3ème cellule sera exprimée sous forme de couple à savoir:
(Contenu Cellule 1, Contenu Cellule 2).
Exemple : 6 et 2 sont les contenus respectifs des cellules L 5 et L 6 (où L représente le N° de Ligne puis 5 et 6 représentant les colonnes).
! Col 5 ! Col 6 ! Col 7 !
Ligne 6 --- ! 6 ! 2 ! (6,2) !
Maintenant voici le problème :
A la fin de chaque ligne, je souhaiterais afficher dans un MsgBox, le contenu de la 3ème cellule.
Mais, j’ai le message suivant : « Erreur de compilation : Attendu: Fin d’instruction »
En effet, le problème se pose sur la ligne portant l’instruction suivante qui est en rouge :
MsgBox "("&L5&","&L6&")" , avec en bleu ceci "," dans les parenthèses.
Je vous remercie prie de bien vouloir m’aider.
Voici le code utilisé :
Sub Testnl02()
Dim w1 As Worksheet
Dim w2 As Worksheet
Dim Ligne As Long
Dim L As Integer
Dim Ti_1 As String
Dim Nu_1 As String
Dim Da_1 As String
Dim Un_1 As Variant
Dim De_1 As String
Dim Tr_1 As Variant
Dim Cpt As Integer
Workbooks.Open Filename:="E:\EXCEL VBA\Exemples 03\TestL02.xls"
Set w1 = Worksheets("Liste")
Ligne = w1.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For L = 1 To Ligne
w1.Select
Ti_1 = w1.Cells(L, 1)
Nu_1 = w1.Cells(L, 2)
Da_1 = w1.Cells(L, 3)
Un_1 = w1.Cells(L, 4)
De_1 = w1.Cells(L, 5)
Tr_1 = w1.Cells(L, 6)
MsgBox " -- Fin de la ligne N° = " & L & " "
MsgBox "("&L5&","&L6&")"
MsgBox "-" & Nu_1 & "-" & Da_1 & "-" & Un_1 & "-" & De_1 & "-" & Tr_1 & " "
Next L
Application.ScreenUpdating = True
End Sub
arsene53
Je suis un débutant en vba et j’ai quelques soucis pour afficher à l’écran, par MsgBox, le contenu d’une cellule résultant des contenus de 2 autres cellules.
En effet, je dispose d’un fichier excel dont les cellules contiennent des chiffres et à certains endroits des lettres et des dates.
Pour une ligne donnée lue sur la feuille de calcul et à partir de 2 cellules, je souhaiterais afficher à l’écran le contenu d’une 3ème cellule résultant des contenus des 2(deux) 1ères cellules. Cette 3ème cellule sera exprimée sous forme de couple à savoir:
(Contenu Cellule 1, Contenu Cellule 2).
Exemple : 6 et 2 sont les contenus respectifs des cellules L 5 et L 6 (où L représente le N° de Ligne puis 5 et 6 représentant les colonnes).
! Col 5 ! Col 6 ! Col 7 !
Ligne 6 --- ! 6 ! 2 ! (6,2) !
Maintenant voici le problème :
A la fin de chaque ligne, je souhaiterais afficher dans un MsgBox, le contenu de la 3ème cellule.
Mais, j’ai le message suivant : « Erreur de compilation : Attendu: Fin d’instruction »
En effet, le problème se pose sur la ligne portant l’instruction suivante qui est en rouge :
MsgBox "("&L5&","&L6&")" , avec en bleu ceci "," dans les parenthèses.
Je vous remercie prie de bien vouloir m’aider.
Voici le code utilisé :
Sub Testnl02()
Dim w1 As Worksheet
Dim w2 As Worksheet
Dim Ligne As Long
Dim L As Integer
Dim Ti_1 As String
Dim Nu_1 As String
Dim Da_1 As String
Dim Un_1 As Variant
Dim De_1 As String
Dim Tr_1 As Variant
Dim Cpt As Integer
Workbooks.Open Filename:="E:\EXCEL VBA\Exemples 03\TestL02.xls"
Set w1 = Worksheets("Liste")
Ligne = w1.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For L = 1 To Ligne
w1.Select
Ti_1 = w1.Cells(L, 1)
Nu_1 = w1.Cells(L, 2)
Da_1 = w1.Cells(L, 3)
Un_1 = w1.Cells(L, 4)
De_1 = w1.Cells(L, 5)
Tr_1 = w1.Cells(L, 6)
MsgBox " -- Fin de la ligne N° = " & L & " "
MsgBox "("&L5&","&L6&")"
MsgBox "-" & Nu_1 & "-" & Da_1 & "-" & Un_1 & "-" & De_1 & "-" & Tr_1 & " "
Next L
Application.ScreenUpdating = True
End Sub
arsene53
A voir également:
- MsgBox du contenu d'une cellule résultant des contenus de 2 autres cellules
- Fusionner deux cellules excel en gardant le contenu - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Verrouiller des cellules excel - Guide
- Excel cellule couleur si condition texte - Guide
- Formule excel pour additionner plusieurs cellules - Guide
3 réponses
Bonjour Jordane45,
Je vous remercie pour la réponse.
La modification a été effectuée, c'est à dire en remplaçant l'ancienne instruction
MsgBox "("&L5&","&L6&")" par celle que vous me proposez soit:
MsgBox "("&De_1&","&Tr_1&")" mais le message erreur persiste à savoir:
« Erreur de compilation : Attendu: Fin d’instruction » avec en bleu ceci "," dans les parenthèses.
Cordialement
arsene53
Je vous remercie pour la réponse.
La modification a été effectuée, c'est à dire en remplaçant l'ancienne instruction
MsgBox "("&L5&","&L6&")" par celle que vous me proposez soit:
MsgBox "("&De_1&","&Tr_1&")" mais le message erreur persiste à savoir:
« Erreur de compilation : Attendu: Fin d’instruction » avec en bleu ceci "," dans les parenthèses.
Cordialement
arsene53
Bonjour Jordane45,
En cherchant un peu, j'ai trouvé la solution.
En effet, à partir de la solution que vous m'avez proposée, j'ai d'abord essayé d'introduire un espace (un blanc) de part et d'autre de chaque caractère &
Ensuite, j'ai mis du blanc :
- après la parenthèse ouvrante (
- avant la parenthèse fermante )
Et ça a marché.
Illustration:
- ancienne instruction: MsgBox "("&De_1&","&Tr_1&")"
- nouvelle instruction: MsgBox "( " & De_1 & "," & Tr_1 & " )"
Merci beaucoup pour l'aide, pour m'avoir mis sur la voie.
S'il vous plaît, j'ai un dernier souci, pour être complet.
Je voudrais vous solliciter pour résoudre un autre problème lié à celui qui vient d'être résolu.
En effet, je souhaiterais, qu'en plus de l'affichage par MsgBox,
- d'abord, écrire ces données (affichées) dans une autre feuille nommée " feuil2 " du même classeur.
- puis, écrire le contenu de l'enregistrement traité dans un 2ème fichier excel qui s'appelleraît:
" Fic_nouv "
Cordialement
arsene53
En cherchant un peu, j'ai trouvé la solution.
En effet, à partir de la solution que vous m'avez proposée, j'ai d'abord essayé d'introduire un espace (un blanc) de part et d'autre de chaque caractère &
Ensuite, j'ai mis du blanc :
- après la parenthèse ouvrante (
- avant la parenthèse fermante )
Et ça a marché.
Illustration:
- ancienne instruction: MsgBox "("&De_1&","&Tr_1&")"
- nouvelle instruction: MsgBox "( " & De_1 & "," & Tr_1 & " )"
Merci beaucoup pour l'aide, pour m'avoir mis sur la voie.
S'il vous plaît, j'ai un dernier souci, pour être complet.
Je voudrais vous solliciter pour résoudre un autre problème lié à celui qui vient d'être résolu.
En effet, je souhaiterais, qu'en plus de l'affichage par MsgBox,
- d'abord, écrire ces données (affichées) dans une autre feuille nommée " feuil2 " du même classeur.
- puis, écrire le contenu de l'enregistrement traité dans un 2ème fichier excel qui s'appelleraît:
" Fic_nouv "
Cordialement
arsene53