Avatar billede akss Nybegynder
12. september 2006 - 23:04 Der er 14 kommentarer og
1 løsning

Kan tvinge udfyldes af et felt, hvis data i et andet.

Hej.

Jeg kunne godt tænke mig at tvinge brugerne af mit ark, til at vælge fra en datavaliderings liste, såfremt de har udfyldt en værdi i en anden celle.

Mit ark er som følgende:
  A            B            C
1  Budget,      Forbug,      Måned.
2. "talværdi"    "talværdi"    vælg fra liste

Brugeren kan indtaste en tal værdi i Budget eller forbrug, og når dette sker ønsker jeg at excel tvinger brugeren til at vælge en måned i kolonne C. (Listen kommer fra en data valideringsliste)

Er dette muligt.
Avatar billede hpo Nybegynder
12. september 2006 - 23:09 #1
Kan du ikke bruge drop-down-listen fra kontrolelementer?
/hpo
Avatar billede hpo Nybegynder
12. september 2006 - 23:16 #2
sorry - det bliver jo noget med nogle betingelser også. læste vist ikke ordentligt i første omgang. Se bort fra mit indlæg.
Avatar billede excelent Ekspert
13. september 2006 - 00:23 #3
prøv indsæt i arkets kodemodul:
(linie 2 tester for input i a2:b20 ret efter behov)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a2:b20")) Is Nothing Then Exit Sub
  Dim i
  For i = 2 To Target.Row - 1
    If Cells(i, 3) = "" Then Target = "": Cells(i, 3).Select: Exit Sub
  Next
End Sub
Avatar billede excelent Ekspert
13. september 2006 - 06:25 #4
eller: (messagebox til/fravælges efter temperament)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a2:b20")) Is Nothing Then Exit Sub
Cells(Target.Row, 3).Select
If ActiveCell.Row > Cells(2, 3).End(xlDown).Offset(1, 0).Row Then
Cells(2, 3).End(xlDown).Offset(1, 0).Select
MsgBox ("Husk at vælge måned ")
End If
End Sub
Avatar billede akss Nybegynder
13. september 2006 - 06:47 #5
Har prøvet den sidste med messagebox, men modtager en fejl meddelse som følgende
"Compiler Error, End if Without block if"
Og kan dermed ikke tjekke om den virker når jeg vælger data i celle 3.
Nogle hints.
Avatar billede mrjh Novice
13. september 2006 - 07:43 #6
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:B")) Is Nothing Then
    If Target.Column = 1 Then
        Cells(Target.Row, 2).Activate
    End If
    If Target.Column = 2 Then
        Cells(Target.Row, 3).Activate
    MsgBox "Indtast måned"
    End If
End If
End Sub
Avatar billede excelent Ekspert
13. september 2006 - 07:45 #7
prøv lige

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a2:b20")) Is Nothing Then Exit Sub
Cells(Target.Row, 3).Select
If Cells(2, 3) = "" Then Cells(2, 3).Select: Exit Sub
If ActiveCell.Row > Cells(1, 3).End(xlDown).Offset(1, 0).Row Then
Cells(2, 3).End(xlDown).Offset(1, 0).Select
MsgBox ("Husk at vælge måned ")
End If
End Sub
Avatar billede mrjh Novice
13. september 2006 - 09:22 #8
Eller prøv denne. Den tvinger en indtastning igennem i C kolonnen

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:C")) Is Nothing Then
Target.Offset(, 1).Activate
    If Target.Column = 2 Then
        MsgBox "Indtast måned"
    End If
    If Target.Column = 3 And Target.Value = "" Then
        Target.Activate
        MsgBox "Om igen"
        SendKeys ("{F2}")
        On Error Resume Next
    End If
End If
End Sub
Avatar billede excelent Ekspert
14. september 2006 - 06:30 #9
sidste bud. :-)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column > 4 Then Exit Sub
If ActiveCell.Column = 4 Then
ActiveCell.Offset(0, -1).Select
MsgBox (" Måned skal udfyldes")
End If
If Range("C20").End(xlUp).Row < Range("A20").End(xlUp).Row Or _
Range("C20").End(xlUp).Row < Range("B20").End(xlUp).Row Then _
Cells(Range("C20").End(xlUp).Row + 1, ActiveCell.Column).Select
End Sub
Avatar billede akss Nybegynder
14. september 2006 - 08:10 #10
Hej Alle.

Den der virker bedst med et lille tweak var fra mrhj, og blev sådan.
Dog har forslaggene fra excelent, gjort at jeg kunne forbedre arket på andre måder, og derfor deler jeg point med 40 point til mrhj og 20 til execelent.
Tak for hjælpen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:B")) Is Nothing Then
    If Target.Column = 1 Then
        Cells(Target.Row, 3).Activate
    MsgBox "Indtast måned"
    End If
    If Target.Column = 2 Then
        Cells(Target.Row, 3).Activate
    MsgBox "Indtast måned"
    End If
End If
End Sub
Avatar billede akss Nybegynder
14. september 2006 - 08:14 #11
Hej Igen.

Hvordan tildeler man point, kan ikke se hvor jeg kan gøre dette.

Kristian
Avatar billede akss Nybegynder
14. september 2006 - 08:17 #12
.
Avatar billede mrjh Novice
14. september 2006 - 08:17 #13
Når vi har lagt et svar, kan du finde os :-). Vent til excelent svarer.
Avatar billede akss Nybegynder
14. september 2006 - 08:35 #14
ok, jeg opretter en ny da jeg skal have dette gentaget over mange kolonner og det virkede ikke lige som jeg forventede. Se nyt sprøgsmål fra mig om 5 min.
Avatar billede akss Nybegynder
14. september 2006 - 10:47 #15
Hej
Mrjh og Excelent, venligst svar på mit nye spørgsmål - Point for "Kan tvinge udfyldes af et felt, hvis data i et andet."

Så tildeler jeg point som lovet, beklager besvaret.

Kristian
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