Avatar billede holmes2 Nybegynder
15. marts 2008 - 23:36 Der er 8 kommentarer og
1 løsning

Hjælp med macro til at finde abandoned call

Hej

Jeg har brug for hjælp med at lave en macro som kan undersøge noget telefondata. Den skal gennemsøge alle vores telefonkald for en dag, og finde de telefonnumre som er abandoned (hvor kunden har lagt på). Data i excel arket består af ca 50000 linier og hvert opkald er opdelt med CALL ID i kolonne a.

Så kort fortalt skal makroen gøre følgende:

Undersøge data i rækkerne som er adskilt af ordet "CALL ID" i kollone a. Imellem hver "CALL ID" skal den se efter om der står ordet ABANDONED i kolonne G. Hvis det står ordet skal den finde telefonnummeret i kolonne I som altid består af 8 tal (et dansk telefonnummer 11223344). Dette telefonnummer skal så skrives i et nyt sheet. Så jeg får en liste over alle de telefonnumre som er abandoned.

Håber I forstår hvad jeg mener.

Her er eksempel på et CALL ID:

Call ID:  1                                FALSE
10:06:38    Give Ringback    NULL                        FALSE
10:06:38    Returned From IVR    NULL    IVR_Q: 109099    L_APP: Master_Script                FALSE
10:06:38    Give IVR    NULL    L_APP: Master_Script        IVR_Q: 109099            FALSE
10:06:38    Handed Over to Master Application    NULL    CDN: 9100    L_APP: Master_Script    NORM            FALSE
10:06:38    Local Call Arrived    NULL    RTE: 0 TRK: 39    CDN: 9100    DNIS:    CLID: 11223344        11223344
10:06:49    Returned From IVR    NULL    IVR_Q: 109099    L_APP: Master_Script                FALSE
10:06:49    Give IVR    NULL    L_APP: Master_Script        IVR_Q: 109099            FALSE
10:06:51    Give Music    NULL    L_APP: Sales    RTE: 10                FALSE
10:06:51    Task Flow Handed Off    NULL    TF: 1    TF: 10017                FALSE
10:06:51    Application Interflowed    NULL    L_APP: Master_Script    L_APP: Sales                FALSE
10:06:51    Queued To Skillset    NULL    L_APP: Sales    SK_SET: Sales    PRI: 3    1st_TIME_QUEUED_TO_SKSET: YES        FALSE
10:06:53    Local Call Abandoned    NULL                        FALSE
10:06:53    Give Music Completed    NULL    RTE: 10    L_APP: Sales        DURATION: 2        FALSE
10:06:53    Dequeued From Skillset    NULL    SK_SET: Sales        PRI: 3    REASON: ABANDONED TIME_IN_Q: 2        FALSE
Avatar billede jlemming Nybegynder
16. marts 2008 - 09:32 #1
Kan du ikke bruge filtere funktionen?
Avatar billede holmes2 Nybegynder
16. marts 2008 - 09:48 #2
Filter skal nok være en del af VBA'en, ville jeg tro. Men jeg aner bare ikke hvordan jeg skal skrive hele vba'en for at få den til at checke alt dette
Avatar billede jlemming Nybegynder
16. marts 2008 - 11:04 #3
Har du mulighed for sende arket?, jeg har dog ikke tid til at kigge på det før til aften.

lemming,j(a)gmail,com

,=.
(a)=@
Avatar billede holmes2 Nybegynder
16. marts 2008 - 14:03 #4
ok, jeg har sendt en fil til dig jlemming. Håber du kan hjælpe.
Avatar billede holmes2 Nybegynder
16. marts 2008 - 17:21 #5
Nu har jeg selv været igang med at prøve mig lidt frem. Har det fået nogenlunde til at fungere. Men når jeg laver et nyt worksheet i function nytsheet(), så får jeg ikke noget resultet på det nye worksheet. Men hvis jeg opretter det manuelt fungere det?



Function nytsheet()
    Worksheets.Add(after:=Worksheets(Worksheets.Count), Type:=xlWorksheet).Name = "Abandoned"
End Function


Sub findtelefon()

Dim a As Range
x = 1

Call nytsheet

For Each a In Range("a1", Range("a1").End(xlDown)).Cells

    If a.Offset(0, 1).Value = "Local Call Arrived" Then
   
        televalue = a.Offset(0, 6).Value
       
        If Len(televalue) = "14" Then
            telephone = Right(televalue, 8)
        Else
            telephone = "hemmeligt"
        End If
       
   
    End If

    If a.Offset(0, 1).Value = "Local Call Abandoned" And telephone <> "hemmeligt" Then
       
        Worksheets("Abandoned").Range("a" & x & "").Value = telephone
         
        x = x + 1
       
    End If
   

Next
End Sub
Avatar billede holmes2 Nybegynder
16. marts 2008 - 19:22 #6
Hmm, det er ikke en helt optimal function jeg har fået lavet. Glæder mig til at se jlemmings løsning
Avatar billede jlemming Nybegynder
18. marts 2008 - 22:16 #7
Har du set min mail?
Avatar billede holmes2 Nybegynder
19. marts 2008 - 07:25 #8
Hej Lemming

Ja, tak! Det fungere fint, så stort tak for hjælpen. Lægger lige din løsning her, så andre kan se svaret. Kan du ikke ligge et svar så jeg kan give dig point.
Tak for at du gad hjælpe mig!

Sub findtelefon()
On Error Resume Next
nytark = "Abandoned"

Dim a As Range

Application.ScreenUpdating = False

x = 1
Worksheets(nytark).Delete
Worksheets.Add(after:=Worksheets(Worksheets.Count), Type:=xlWorksheet).Name = nytark

Set tilark = Sheets(nytark)
Set fraark = Sheets("sheet1")

lastrow = fraark.Range("A65536").End(xlUp).Row

For r = 1 To lastrow
    If fraark.Cells(r, 2).Value = "Local Call Arrived" Then
        televalue = fraark.Cells(r, 7).Value
       
        If Len(televalue) = "14" Then
            telephone = Right(televalue, 8)
        Else
            telephone = "hemmeligt"
        End If
    End If

    If fraark.Cells(r, 2).Value = "Local Call Abandoned" And telephone <> "hemmeligt" Then
        tilark.Cells(x, 1).Value = telephone
        x = x + 1
    End If
Next
Application.ScreenUpdating = True

End Sub
Avatar billede jlemming Nybegynder
19. marts 2008 - 10:30 #9
Velbekome :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester