VBA - Concaténation deux cases en une
Bonjour,
Je travail actuellement sur un fichier sur lequel je dois faire un copier-coller d'une liste (suivant la valeur d'une autre case) vers un autre onglet.
J'ai actuellement un résultat qui me convient presque mais ce n'est pas parfait.
Deux problèmes :
- Je dois concaténer deux cases en une lors de cette copie. (colonne B + colonne C) Actuellement je fais que de la simple copie de la colonne B.
-Problème lorsque l'une des fonctions (OPE ou MME) de l'onglet "TraineeList" n'est pas présente dans ma liste de candidat. Il y a un affichage sur l'onglet "Recommendation" en B3 ou B19 alors que ça devrait rester vide.
J'ai aussi essayé de réaliser une boucle pour faire cette manip mais malheureusement sans succès.
Ci-joint mon fichier :
Merci de votre aide.
Amicalement.
Bonsoir saviola18, le forum,
Un essai.....
Sub Bouton2_Cliquer()
Dim derligne As Long, dl1 As Long, dl2 As Long
Application.ScreenUpdating = False
Range("B3:B14").ClearContents
Range("B19:B29").ClearContents
dl1 = 3
dl2 = 19
With Sheets("TraineeList")
derlig = .Range("B" & Rows.Count).End(xlUp).Row
For i = 3 To derlig
Select Case .Range("D" & i).Value
Case Is = "OPE"
Sheets("Recommendation").Range("B" & dl1) = .Range("B" & i) & " " & .Range("C" & i)
dl1 = dl1 + 1
Case Is = "MME"
Sheets("Recommendation").Range("B" & dl2) = .Range("B" & i) & " " & .Range("C" & i)
dl2 = dl2 + 1
End Select
Next i
End With
End Sub
Cordialement,
Bonjour xorsankukai,
ça marche très bien merci.
Je clôture
Cordialement.
Bonjour je souhaiterai, SVP, une petite Update de ce sujet
Suite à quelque complication je me rends compte que la répartition des noms par ligne et moins pratique que pour une répartition en colonne.
Pouvons nous changer la répartition pour envoyé les noms à partir de "B3" jusqu'à "Xcolonne 3" Si OPE
Et à partir de "C21" jusqu'à "Xcolonne 21" si MME
Merci de votre aide.
Cordialement.
Saviola18
Bonjour saviola18, le forum,
A tester:
Sub Bouton1_Cliquer()
Dim derligne As Long, dc1 As Long, dc2 As Long
Application.ScreenUpdating = False
Range("C4:N3").ClearContents
Range("D21:N21").ClearContents
dc1 = 3
dc2 = 4
With Sheets("TraineeList")
derlig = .Range("B" & Rows.Count).End(xlUp).Row
For i = 3 To derlig
Select Case .Range("D" & i).Value
Case Is = "OPE"
Sheets("Recommandation").Cells(3, dc1) = .Range("B" & i) & " " & .Range("C" & i)
dc1 = dc1 + 1
Case Is = "MME"
Sheets("Recommandation").Cells(21, dc2) = .Range("B" & i) & " " & .Range("C" & i)
dc2 = dc2 + 1
End Select
Next i
End With
End Sub
Cordialement,
Bonjour xorsankukai,
ça marche même si j'ai fait quelques erreurs dans mon explication.
voici mon code finale que j'ai réussi à modifier
Sub Bouton1_Cliquer()
Dim derligne As Long, dc1 As Long, dc2 As Long
Application.ScreenUpdating = False
Range("C2:U21").ClearContents
Range("C21:U21").ClearContents
dc1 = 3
dc2 = 3
With Sheets("TraineeList")
derlig = .Range("B" & Rows.Count).End(xlUp).Row
For i = 3 To derlig
Select Case .Range("D" & i).Value
Case Is = "OPE"
Sheets("Recommandation").Cells(2, dc1) = .Range("B" & i) & " " & .Range("C" & i)
dc1 = dc1 + 1
Case Is = "MME"
Sheets("Recommandation").Cells(21, dc2) = .Range("B" & i) & " " & .Range("C" & i)
dc2 = dc2 + 1
End Select
Next i
End With
End Sub
Mon problème est résolu, Merci.
Cordialement.