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





