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


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
oui j'aimerais bien savoir
Nom : Capture.JPG
Affichages : 1065
Taille : 59,2 Ko
pour plus d'information sur la raison de ma question un petit test
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
resultat
le 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
avouez quand meme que c'est deconcertant

et pour appuyer mes certitudes voila le string de la copy de la plage en question récupérer dans le 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
resultat du clipboard
A vbTab vbTab B vbTab C