09. oktober 2007 - 10:46
Der er
2 kommentarer og
1 løsning
Find største værdi i kolonne og brug i formel
Hej,
Dette stykke kode indsætter en ny linie ved dobbeltklik i cellen (benævnt "Ny linie" med Cellenavnet: "INDSAET"):
----------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
CelleNavn = Target.Name.Name
If Left(CelleNavn, 7) = "INDSAET" Then
NyVal = ActiveCell.Offset(-1, 0).Value + 1
Selection.EntireRow.Insert Shift:=xlDown
ActiveCell.FormulaR1C1 = NyVal
ActiveCell.Range("B1").Select
End If
End Sub
----------
Da jeg gerne vil sortere Kolonne E og F (efter dato og status:Open) bliver rækkefølgen jo ændret i Kolonne A til fx:
A
100
115
103
150
123
118
Spørgsmål 1:
Hvordan ændre jeg koden til at tage den største værdi fra A3 til ActiveCell?
Spørgsmål 2:
Hvordan får jeg den til automatisk at sorterer efter kolonne E og F, efter jeg har tilføjet en ny linie (spm. 1)?
/CS
10. oktober 2007 - 18:04
#1
Sp. 1 hvor kommer A3 ind i billedet?
Du er velkommen til at sende en kopi af filen til: pb@supertekst-it.dk - så er det måske lidt lettere at se, hvad du ønsker.
12. oktober 2007 - 11:07
#3
Her er koden:
Dim antalRækker
Private Sub CommandButton1_Click()
IndSaetinie
End Sub
Private Sub Indsaet_Gruppe_Click()
Indsaet_Ny_Gruppe
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim nyVal
On Error Resume Next
CelleNavn = Target.Name.Name
If Left(CelleNavn, 7) = "INDSAET" Then
nyVal = findhøjesteTal
Selection.EntireRow.Insert Shift:=xlDown
ActiveCell.FormulaR1C1 = nyVal
ActiveCell.Range("B1").Select
Sortering
End If
End Sub
Public Sub Sortering()
Rem beregn sidste række
antalRækker = beregnAntalrækker
Range("A2:I" + CStr(antalRækker)).Sort Key1:=Range("H3"), Order1:=xlAscending, Key2:=Range( _
"G3"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
End Sub
Public Function beregnAntalrækker()
beregnAntalrækker = Range("A65536").End(xlUp).Row
End Function
Public Function findhøjesteTal()
Dim tal As Integer
tal = 0
max = beregnAntalrækker
For ræk = 3 To max
If Cells(ræk, 1) <> "" And IsNumeric(Cells(ræk, 1)) = True Then
If Cells(ræk, 1) > tal Then
tal = Cells(ræk, 1)
End If
End If
Next ræk
findhøjesteTal = tal + 1
End Function