Avatar billede Rubenms Nybegynder
20. december 2011 - 13:23 Der er 10 kommentarer

Til alle eksperterne :)

Hej Eksperter

Jeg sidder med et stort excel dokument hvor jeg, i det samme sheet, har nærmest to skemaer. I skemaet som spænder fra kolonne A til Q har jeg en masse rådata. Og i det andet skema som spænder fra Y til AN har jeg sorteret de rådata da der er nogle kolonner i det første skema jeg ikke skal arbejde videre med. I det første skema står der et sagsnummer i kolonne E. Dette er et unikt nummer som alle de ordrer jeg behandler har. I mit andet skema har jeg sagsnummeret i kolonne Y. I  mit andet skema skriver jeg tit nogle kommentar til de forskellige ting som skal huskes. Makroen som den er idag, sletter hele mit andet skema og importerer data fra råmaterialet og sorter det så jeg kun får hvad jeg skal bruge. Problemet er så at den jo sletter mine kommentarer igen, som jeg så skal skrive en gang til.

Det jeg har derfor har brug for, er en kode eller en metode, hvorpå den søger på alle sagsnumrerne og hvis det IKKE findes i skemaet med de sorterede data, så sætter den ind nederst. ?
Avatar billede Ialocin Novice
20. december 2011 - 13:55 #1
Hej Rubenms

Du kriver, at problemet er at dine kommentarer bliver slettet.

Men det du ønsker er en sammenligning mellem sagsnumre fra skemaet til venstre og de kopierede sagsnumre i skemaet til højre ... men hvis skemaet til højre er en kopi, så findes sagsnummeret jo ?? eller er jeg helt gal på den ???

Og slutteligt, hvad er det der skal indsættes nederst ??

Med venlig hilsen, Nicolai
Avatar billede Rubenms Nybegynder
20. december 2011 - 14:02 #2
Ved godt det ikke er formuleret på bedste vis :)

Det når der importeres nye data med nye sagsnumre til skemaet til venstre (med råmateriale). Der er det ikke alt der skal kopieres til skemaet til højre, da dette vil slette nogle af mine kommentarer.
Derfor skal den teste om sagsnummeret allerede findes, hvis det gør, så skal den ikke kopier, men hvis den ikke gør skal den kopiere ind nederst
Avatar billede Ialocin Novice
20. december 2011 - 14:15 #3
Hej Rubenms

Aha :o)

Hvilken version af Excel bruger du ?

Jeg prøver lige at kigge på det ...
Er der andre derude, så byd bare ind.

Med venlig hilsen, Nicolai
Avatar billede Rubenms Nybegynder
20. december 2011 - 14:16 #4
2003. Tusinde tak
Avatar billede Ialocin Novice
20. december 2011 - 14:58 #5
Hej Rubenms

Det samme som mig ...

Jeg kigger først på det efter 20 i aften, så er der andre der kan/vil hjælpe Rubenms ? ... så fyr endelig løs :o)

Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
20. december 2011 - 23:23 #6
Hej Rubenms

Se om du kan bruge følgende procedure til noget ...

Proceduren starter i celle 1 i kolonne e - og løber ned gennem kolonne y for at finde et match.

Findes der et match, hoppes der til celle 2 i kolonne e og der løbes igen ned gennem kolonne y ... osv.

Findes der IKKE et match ? kopieres værdien fra cellen i kolonne e til cellen efter sidste celle indeholdende data i kolonne y.

Håber det gi´r mening :o)

Prøv det og lad høre ?


Sub SøgSagsnummer()
Dim erække As Integer
Dim yrække As Integer
Dim v As Boolean
Dim yr As Integer

'hvis der er en værdi i celle Y1
If Range("Y1").Value <> "" Then


                'tildel variablen erække, rækkenummeret på sidste række i kolonne e indeholdende data
                erække = ActiveSheet.Range("E65536").End(xlUp).Row
           
               
                'tildel variablen yrække, rækkenummeret på sidste række i kolonne y indeholdende data
                yrække = ActiveSheet.Range("Y65536").End(xlUp).Row
               
               
                'for hver celle i kolonne e
                For Each ecelle In Range("E1:E" & erække)
               
                    'for hver celle i kolonne y
                    For Each ycelle In Range("Y1:Y" & yrække)
               
               
                        'hvis værdien findes
                        If ecelle.Value = ycelle.Value Then
                       
                            'sæt test variabel v = true
                            v = True
                           
                            'gå til line1 og forsæt med næste celle i kolonne e
                            GoTo line1
                           
                           
                        Else
                       
                            'sæt test variabel v = false
                            v = False
                       
                        End If
                       
                    Next ycelle
                   
                   
                    'hvis v = false ~ der er ingen identiske sagsnummer i kolonne y
                    If v = False Then
                   
                        'tildel variablen yr, rækkenummeret på sidste række i kolonne y indeholdende data
                        yr = ActiveSheet.Range("Y65536").End(xlUp).Row
                   
                        'tildel cellen, efter sidste celle med data i kolonne y, med sagsnummeret fra kolonne e
                        Range("Y" & yr + 1) = ecelle.Value
                   
                       
                    End If
                   
                           
line1:                Next ecelle
   

End If
   
End Sub


Med venlig hilsen, Nicolai
Avatar billede Rubenms Nybegynder
21. december 2011 - 11:39 #7
Tusinde tak fordi du gider at hjælpe Nicolai. Makroen går i stå og melder fejl ved GoTo Line1 ?
Avatar billede Ialocin Novice
21. december 2011 - 11:53 #8
Hej Rubenms

Går den bare i stå ? kommer der ingen fejlmelding ?

Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
21. december 2011 - 12:02 #9
Hej Rubenms

Prøv at skifte linierne:

'gå til line1 og forsæt med næste celle i kolonne e
GoTo line1


ud med:

'ud af løkken - spring til næste celle i kolonne E
Exit For


og slet: line1: i 3. sidste linie.

Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
27. december 2011 - 21:23 #10
Hej Rubenms

Har du prøvet ændringen i #9 ??

Med venlig hilsen, Nicolai
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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