Pour ceux qui utilisent OpenSiteExplorer pour lister les backlinks sur vos sites, vous avez surement rencontré des problèmes sur les exports.
Impossible de récupérer ceux-ci sous Excel sans avoir des décalages de colonnes.
Bref pour faire court, voila un petit script VBA à placer dans une macro Excel qui devrait vous soulager.
Le fichier doit s’appeler c:Export OSE.csv
et le résultat est visible dans c:Export OSE3.csv
Sub opensitemap() Dim sOldLigne As String Dim iCron As Integer Dim iPos As Integer Dim iPosFin As Integer Dim iPosRC As Integer Dim bGuillemet As Boolean 'Creation dun fichier propre csv a partir d un fichier opensitemap sOldLigne = "" Open "c:Export OSE.csv" For Input As #1 Open "c:Export OSE2.csv" For Output As #2 Do While Not EOF(1) Line Input #1, sLigne sLigne = Replace(Trim(sLigne), Chr(10), vbCrLf) iPos = 0 While sLigne <> "" And InStr(iPos + 1, sLigne, "http") > 0 iPos = InStr(iPos + 1, sLigne, "http") iPosFin = InStr(iPos + 1, sLigne, "http") iPosRC = InStr(iPosFin + 1, sLigne, vbCrLf) If iPosRC = 0 Then iPosRC = InStr(iPos + 1, sLigne, vbCrLf) End If Print #2, sOldLigne & Mid(sLigne, 1, iPosRC - 1) sLigne = Trim(Mid(sLigne, iPosRC + 2)) sOldLigne = "" iPos = 1 Wend sOldLigne = sOldLigne & sLigne Loop Close #1 Close #2 'Il reste qq lignes en erreur bDepart = True sOldLigne = "" Open "c:Export OSE2.csv" For Input As #2 Open "c:Export OSE3.csv" For Output As #3 Do While Not EOF(2) Line Input #2, sLigne sLigne = sOldLigne & sLigne iPos = InStr(1, sLigne, "http") iPosFin = InStr(iPos + 1, sLigne, "http") If bDepart = False And iPosFin = 0 Then sOldLigne = sLigne Else 'Remplacement des virgules par des | pour les separateurs bGuillemet = False iLettre = 1 While iLettre < Len(sLigne) sLettre = Mid(sLigne, iLettre, 1) If sLettre = Chr(34) Then If bGuillemet Then bGuillemet = False Else bGuillemet = True End If End If If bGuillemet And sLettre = vbTab Then sLigne = (Mid(sLigne, 1, iLettre - 1)) & " " & (Mid(sLigne, iLettre + 1)) End If If sLettre = "," And bGuillemet = False Then sLigne = (Mid(sLigne, 1, iLettre - 1)) & vbTab & (Mid(sLigne, iLettre + 1)) End If iLettre = iLettre + 1 Wend sLigne = Replace(sLigne, Chr(34), "") 'sLigne = Replace(sLigne, vbTab & vbTab, vbTab) Print #3, sLigne bDepart = False 'Permet de bypasser la 1er ligne qui n a pas http sOldLigne = "" End If Loop Close #3 Close #2 MsgBox "ok" End Sub