[Excel 2003] Apurer un onglet

Bonjour,

je souhaiterai traiter un onglet "Entrée" afin de l'apurer et de renvoyer le résultat dans l'onglet "Sortie".

Personnellement je serai incapable de faire cette macro ,auriez-vous l'amabilité de m'aider ?

ci-joint mon fichier Excel avec le résultat attendu dans l'onglet "Sortie".

En sachant que le nombre de pavés est inconnu à l'avance. (par pavé, j'entends le nombre de login/mdp et son formatage associé)

En vous remerciant par avance.

Cordialement

19test1.xls (13.50 Ko)

Bonjour,

Le code suivant à essayer :

Option Explicit
Sub test()
    Dim shSource As Worksheet, shDest As Worksheet, chaine As String, i As Long, derLigSource As Long, derLigDest As Long
    Set shSource = Sheets("Entrée")
    Set shDest = Sheets("Sortie")
    derLigSource = shSource.Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To derLigSource
        chaine = shSource.Cells(i, "A")
        If chaine Like "Nom de connexion*" Then
            derLigDest = shDest.Range("A" & Rows.Count).End(xlUp).Row
            shDest.Cells(derLigDest + 1, "A") = Trim(Mid(chaine, WorksheetFunction.Search(":", chaine) + 1, WorksheetFunction.Search("|", chaine) - WorksheetFunction.Search(":", chaine) - 1))
            shDest.Cells(derLigDest + 1, "B") = Trim(Right(chaine, Len(chaine) - WorksheetFunction.Search(":", chaine, WorksheetFunction.Search("|", chaine))))
        End If
    Next i
    Set shSource = Nothing
    Set shDest = Nothing
End Sub

Bonjour,

Un exemple à adapter.

Cdlt.

7test1.zip (19.72 Ko)
Public Sub NormalizeData()
Dim n As Long, I As Long, k As Long
Dim tmp, arr()
    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("Sortie")
        .Cells(1).CurrentRegion.Offset(1).ClearContents
        .Cells(2, 1).Resize(UBound(arr, 2), 2).Value = Application.Transpose(arr)
        .Activate
    End With
    Erase arr
End Sub

Je vous remercie de votre aide mais je me suis précipité car j'ai oublié la donnée mail de l'onglet "Mails".

Il s'agit de faire correspondre les logins aux mails appropriés, certaines lignes sont à omettre car incomplètes. Soit il y manque le login soit le mail ou bien il s'agit d'une ligne vide.

Je vous remercie sincèrement du temps que vous me consacrer à résoudre mon problème.

Ci-joint le nouveau fichier.

Cordialement

9test4.xls (15.00 Ko)

Re,

A tester...

Cdlt.

7test1.zip (21.23 Ko)
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

Bonjour,

merci ça fonctionne bien.

Vous m'épaterez toujours par la vitesse de vos réponses. 8)

Cordialement

Bonjour,

Pense à clore le sujet.

Cdlt.

Bonjour,

je vois bien l’icône pour marquer le sujet s'il n'est pas résolu.

Mais comment fait-on pour mettre un sujet en résolu ?

cdt

Rechercher des sujets similaires à "2003 apurer onglet"