[Calc] Formatage données vers 3ème onglet

soummam Messages postés 179 Date d'inscription   Statut Membre Dernière intervention   -  
shunesburg69 Messages postés 1057 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
pouvez-vous m'aider à adapter cette macro Excel pour LibreOffice ?
Car la macro version LibreOffice, je ne maîtrise pas du tout.

il y a 3 onglets.
1er Onglet "Entrée" où je mets les données à traiter (avec bouton de lancement de macro).
   ---  Accès à Internet via ALCASAR  ---  

Nom de connexion : 135791113 | Mot de passe : o19w9kBy

Pensez à changer votre mot de passe (lien sur la page d'authentification)

--------------------------------------------------------------------------------

--- Accès à Internet via ALCASAR ---

Nom de connexion : 24681012 | Mot de passe : vtF9B85h

Pensez à changer votre mot de passe (lien sur la page d'authentification)

--------------------------------------------------------------------------------

--- Accès à Internet via ALCASAR ---

Nom de connexion : 311197531 | Mot de passe : 21oI5tm

Pensez à changer votre mot de passe (lien sur la page d'authentification)


2ème Onglet "Adresses" où je mets login, mails
la macro omet les lignes incomplètes
login	mail
135791113 a.b@titi.fr
654321
24681012 c.d@titi.fr
e.f@titi.fr
311197531 g.h@titi.fr


3ème Onglet "Sortie" où j'obtiens le résultat de la macro.
Login	mdp	email
135791113 o19w9kBy a.b@titi.fr
24681012 vtF9B85h c.d@titi.fr
311197531 21oI5tm g.h@titi.fr



MACRO EXCEL

Public Sub NormalizeData()
Dim n As Long, I As Long, k As Long
Dim tmp, arr(), r
With Worksheets("Entrée")
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For I = 3 To n Step 8
tmp = Split(Trim(.Cells(I, 1)), "|")
ReDim Preserve arr(2, k + 1)
arr(0, k) = Trim(Split(tmp(0), ":")(1))
arr(1, k) = Trim(Split(tmp(1), ":")(1))
k = k + 1
Next I
End With
With Worksheets("Adresses")
ActiveWorkbook.Names.Add Name:="Liste", RefersTo:=.Cells(1).CurrentRegion
End With
With Worksheets("Sortie")
.Cells(1).CurrentRegion.Offset(1).Clear
.Cells(2, 1).Resize(UBound(arr, 2), 2).Value = Application.Transpose(arr)
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For I = 2 To n
r = Application.VLookup(.Cells(I, 1), [Liste], 2, False)
If IsError(r) Then
.Cells(I, 3) = "NC"
Else
.Cells(I, 3) = r
.Hyperlinks.Add anchor:=.Cells(I, 3), _
Address:="mailto:" & .Cells(I, 3)
End If
Next
.Activate
End With
Erase arr
End Sub

Merci par avance


A voir également:

1 réponse

shunesburg69 Messages postés 1057 Date d'inscription   Statut Membre Dernière intervention   216
 
Regardes plutôt sur les forums de développeurs comme developpez.com.
Tu auras plus de chance de trouver une réponse.

LibreOffice est la meilleur alternative à Microsoft Office. C'est pas pour rien que LibreOffice est par défaut dans la quasi totalité des distributions Linux.
0