Vil den nyste dato altid være den sidste?
Kan udføres via VBA..
Hej Supertekst
Ja det vil den - jeg har ikke set andet - men den kan også stå i samme række som navnet, altså når der ikke er flere linier på folk
Hvordan ville sådan en VBA umiddelbart se ud - jeg kan godt selv rette den til, men jeg er ikke sikker på hvordan jeg starter det
/Ida
Hej Ida - jeg vender snarest tilbage med et forslag.
Koden indsættes "under" relevante ark:
Dim antalRæk As Long, ræk As Long, ræk2 As Long
Dim navn As String, dato As Date, ordning As String
Public Sub nyestePension()
Rem beregn antal rækker
antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
ræk2 = 2
Application.ScreenUpdating = False
For ræk = 2 To antalRæk
If ræk = 2 Then 'opstart
navn = Range("A2")
dato = Range("B2")
ordning = Range("C2")
Else
If Range("A" & ræk) <> "" Then 'brud - opbyg nyeste i kol E-G
Range("E" & ræk2) = navn
Range("F" & ræk2) = dato
Range("G" & ræk2) = ordning
ræk2 = ræk2 + 1
navn = Range("A" & ræk)
End If
dato = Range("B" & ræk)
ordning = Range("C" & ræk)
End If
Next ræk
Rem sidste brud
Range("E" & ræk2) = navn
Range("F" & ræk2) = dato
Range("G" & ræk2) = ordning
Application.ScreenUpdating = True
End Sub
Hej Supertekst den virkede super godt - lige indtil der kommer personer op med helt blanke linier i datoen (arket indeholder flere kolonner)
Så nu er det lykkedes mig at lave et ark hvor alle celler har en værdi.
Altså
NAVN DATO ORDNING
Joachim 08-01-2007 HDO AA
Joachim 15-08-2007 HDO BB
Joachim 01-04-2008 HDO CC
Joachim 01-04-2009 HDO CC
Joachim 01-04-2010 HDO CC
Så det jeg reelt har behov for er en VBA som siger.
If row "er størst" inden for det samme navn - så skal den tage en kopi af hele rækken og ligge over i ark 2
er jeg helt sort ??
Den sidste dato vil altid ligge som den sidste på personen....
så måske noget i retning af
If Range ("A2") <> Range ("A") then
copy row
past special Sheet1
Men jeg kan ikke rigtig finde ud af at sætte det ind i en VBA
har været på kursus - men kan ikke helt starte de VBA'er op endnu ??
/Ida
Er det så ikke "farbart" at teste på når navnet skifter i kolonne A?
hmmm hvad har du så af gode ideer.
Det skal lige siges at det navn som står i kolonne A er unik - så det sammen navn vil kun optræde for en person.
/ida
Ok - arbejder p.t. med version 2...
du er simplethen en stjerne
TAK
/Ida
Rem version 2
Dim antalRæk As Long, ræk As Long, ræk2 As Long
Dim navn As String
Public Sub nyestePension()
Rem beregn antal rækker
antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
ræk2 = 2
Application.ScreenUpdating = False
For ræk = 2 To antalRæk
If ræk = 2 Then 'opstart
navn = Range("A2")
Else
If Range("A" & ræk) <> navn Then
udførBrud
End If
End If
Next ræk
Rem sidste brud
udførBrud
Application.ScreenUpdating = True
End Sub
Private Sub udførBrud()
Rows(ræk - 1 & ":" & ræk - 1).Select
Selection.Copy
ActiveWorkbook.Sheets("ark2").Activate
ActiveSheet.Cells(ræk2, 1).Select
ActiveSheet.Paste
ræk2 = ræk2 + 1
Application.CutCopyMode = False
ActiveWorkbook.Sheets("ark1").Activate
navn = Range("A" & ræk)
End Sub
Hej Supertekst
Den virker bare til UG x / o / ~og hvad du ellers kan sætte på af superlativer
smider du et svar - og så takker jeg mange gange
Hilsen
Ida
Hej Ida - tak for de pæne ord - og selv tak samt et svar...
hej Supertekst
Håber det er ok jeg lige spørger igen.
Jeg har stor glæde af din macro - men er løbet ind i en lille udfordring.
Kan vi ikke få den til at PastSpecial - Values og Formats.
jeg har selv forsøgt flere forskellige versioner, men der kommer bare en fejl 400 op :o(
/Ida
Rem version 3
Dim antalRæk As Long, ræk As Long, ræk2 As Long
Dim navn As String
Public Sub nyestePension()
Rem beregn antal rækker
antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
ræk2 = 2
Application.ScreenUpdating = False
For ræk = 2 To antalRæk
If ræk = 2 Then 'opstart
navn = Range("A2")
Else
If Range("A" & ræk) <> navn Then
udførBrud
End If
End If
Next ræk
Rem sidste brud
udførBrud
Application.ScreenUpdating = True
End Sub
Private Sub udførBrud()
Rows(ræk - 1 & ":" & ræk - 1).Select
Selection.Copy
ActiveWorkbook.Sheets("ark2").Activate
ActiveSheet.Rows(ræk2 & ":" & ræk2).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
ræk2 = ræk2 + 1
Application.CutCopyMode = False
ActiveWorkbook.Sheets("ark1").Activate
navn = Range("A" & ræk)
End Sub
perfekt det funker bare - mange tak for hjælpen
/ida
hej Supertekst
kan jeg lokke dig til at kigge på
http://www.eksperten.dk/ (...)nu har jeg forsøgt at løse den selv ved hjælp af VBA - men jeg kan ikke få den til det :(
beklager misbruget af dig
/IDa