BONJOUR a tous
dans une autre discussion MarcL a apporté une solution interessante mais souleve une question
trim /Application.trim
j'ai fait une petite experience
je met la lettre "A" en D1 ,"B" en F1 , "C" en G1
dans la macro je vais utiliser un split soit sur une chaine(string) soit le( join() de la plage D1:G1 donc un string)
et je vais tester exactement la meme chose et de la meme maniere avec la plage out la chaine avec separateur vbtab ou espaces
le resultat de ces tests est placé en colonne A:C
j'aimerais bien savoir quel est le caractere de separation dans la plage car en string le resultat est différent??
ou
est ce que dans cet exercice application.trim exercerait une sorte de callback executé l'ors de l'evenement calculate pour chaques items??
pour info de sur je sais que les separteur colonne dans la copy d'un range recupéré au format text dans le clipbord est vbtab
test de demonstration
mettre la lettre "A" en D1 ,"B" en F1 , "C" en G1
oui j'aimerais bien savoir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub TEST6() tableau1 = Split(Trim("a b c")) tableau2 = Split(Application.Trim("a b c")) tableau3 = Split(Trim("a" & vbTab & vbTab & "b" & vbTab & "c")) tableau4 = Split(Application.Trim("a" & vbTab & vbTab & "b" & vbTab & "c")) tableau5 = Split(Application.Trim(Join(Application.Index([d1:g1].Value, 0)))) tableau6 = Split(Trim(Join(Application.Index([d1:g1].Value, 0)))) Range("A1:c1") = tableau1 Range("A2:c2") = tableau2 Range("A3:c3") = tableau3 Range("A4:c4") = tableau4 Range("A5:c5") = tableau5 Range("A6:c6") = tableau6 End Sub
pour plus d'information sur la raison de ma question un petit test
resultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub test7() stringplage = Join(Application.Index([d1:g1].Value, 0)) stringtext1 = "a" & " " & "b" & " " & "c" stringtext2 = "a" & vbTab & vbTab & "b" & vbTab & "c" result1 = stringtext = stringplage Debug.Print "le resultat du test stringtext1(=""" & stringtext1 & """)par raport a stringplage est " & result1 result2 = stringtext = stringplage Debug.Print "le resultat du test stringtext2(=""" & Replace(stringtext2, vbTab, " VbTab & ") & """)par raport a stringplage est " & result2 End Sub
avouez quand meme que c'est deconcertantle resultat du test stringtext1(="a b c")par raport a stringplage est Faux
le resultat du test stringtext2(="a VbTab & VbTab & b VbTab & c")par raport a stringplage est Faux
et pour appuyer mes certitudes voila le string de la copy de la plage en question récupérer dans le clipboard
resultat du clipboard
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub test8() Range("D1:G1").Copy Debug.Print Replace(CreateObject("htmlfile").parentwindow.clipboardData.GetData("Text"), vbTab, " vbTab ") End Sub
A vbTab vbTab B vbTab C
Partager