Kan tvinge udfyldes af et felt, hvis data i et andet. (Version 2)
Hej.
Tak for alle svare i forbindelse med version 1, af dette spørgsmål, fik det til at virke, men havde regnet med at jeg blot kunne udvide det til at dække resten af kolonnerne, men sådan virker det åbenbart ikke. Mit ark er som følgende: A B C D 1 Budget, Forbug, Måned. Blank 2. "talværdi" "talværdi" vælg fra liste Blank
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)
Og dette forsætter på E, igen og gentages 32 gang i samme ark, hvordan får jeg det til at virke på alle felter, så man feks. taster i I, og flytes til K, med msg. box husk måned.
GIver det mening og er dette muligt smart, eller skal jeg kopier koden for de første 4 rækker 31 gange yderliger og ændre range.
Private Sub Worksheet_Change(ByVal Target As Range) For i = 1 To 40 Step 4 If Not Intersect(Target, Range(Cells(Target.Row, i), Cells(Target.Row, i + 1))) Is Nothing Then If Target.Column = i Or (i + 1) Then Cells(Target.Row, i + 2).Activate MsgBox "Indtast måned" End If End If Next i End Sub
Perfekt den sidder lige hvor den skal, tak. Et tillægs spørgsmål er der nogle gode begynder steder man kan lære om Visual Basic, nogle tips i den retning. Og tak. AKSS
I øvrigt tog kom du selv til at tage pointene på det tidl. spm. Prøv at søg i fritekst herinde omkring at lære om VBA. Der er en masse svar om emnet, både bøger og på nettet.
måske jeg har misforstået, men koden forhindrer ikke bruger i at indtaste et tal i fx. celle A4, for herefter at indtaste et tal i celle A8 uden at vælge måned i celle C4 Men det er måske heller ikke meningen ? :-)
Ja excelent - Det undrede også mig, da den oprindelige kode sikrede dette. Men han har selv tilrettet koden i det forrige spm. til kun at vælge cellen.
Jeg er ikke helt sikker på hvilke kode i mener der tvinger vælg fra drop down liste i den tredje kolone. Jeg har måske ikke forklaret godt nok.
Arket er et rimeligt stort opfølgnings ark, på divers konto forbrug på tværs af flere afdelinger, derfor skal det være rimelig beskyttet og bruger venligt.
Arket er lavet således at der under hver Konto er 3 koloner + 1 tom kolone. (Hefter kaldet konto gruppe) Kolone 1: Forbrug Kolone 2: Forekast Kolone 3: "drop Down - data validation" "Vælg måned" Kolone 4: Tom. Herefter gentages disse 4 koloner i ca. 32 gange, altså ialt ca. 128 kolonner. Hvis der indtastes et tal i en forbrug eller forekast i den individuelle kontogruppe, skal brugeren tvinges til at vælge en måned fra datavalidering.
Mit problem i tidliger løsning var at ikke alle gav dette response for enten forbrug eller forekast da man jo ikke behøver at indtaste data i begge, men kun den ene.
Såfremt i kan lave en kodning der sikre dette er jeg da klar på at tildele endnu flere point for det er super sejt. (Eneste udfordring for mig på dette er hvordan får/køber man flere point) Håber det giver mere menning. AKSS
de ekstra kolonner tager min ikke højde for (endnu) idet det er en tilgføjelse men kan først se på det efter arb.tid måske mrjh har bedre tid rolig nu med de point :-)
Følgende kode indsættes i arkets kodemodul forudsætter at dine overskrifter er : Forbrug, Forekast, Måned, Tom * 32
Forslag.: højreklik på aktuel ark-fane, vælg opret kopi, udskift koden med denne så kan du jo prøve om det kan bruges, ellers bare slet arket igen.
Private Sub Worksheet_Change(ByVal Target As Range) If Target = "" Then Exit Sub If Cells(1, ActiveCell.Column) = "Forbrug" Then Cells(ActiveCell.Row, ActiveCell.Column + 2).Select Exit Sub End If If Cells(1, ActiveCell.Column) = "Forekast" Then Cells(ActiveCell.Row, ActiveCell.Column + 1).Select Exit Sub End If If Cells(1, ActiveCell.Column) = "Måned" Then Cells(ActiveCell.Row + 1, ActiveCell.Column - 2).Select Exit Sub End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Forbrug, Forekast, Måned
If ActiveCell.Row <= 1 Then Cells(2, ActiveCell.Column).Select If ActiveCell.Column > 129 Then Exit Sub
If Cells(1, ActiveCell.Column) = "Forbrug" Then Forbrug = Cells(38, ActiveCell.Column).End(xlUp).Row Forekast = Cells(38, ActiveCell.Column + 1).End(xlUp).Row Måned = Cells(38, ActiveCell.Column + 2).End(xlUp).Row If Måned < Forbrug Or Måned < Forekast Then Cells(Måned + 1, ActiveCell.Column).Select Exit Sub End If
If Cells(1, ActiveCell.Column) = "Forekast" Then Forbrug = Cells(38, ActiveCell.Column - 1).End(xlUp).Row Forekast = Cells(38, ActiveCell.Column).End(xlUp).Row Måned = Cells(38, ActiveCell.Column + 1).End(xlUp).Row If Måned < Forbrug Or Måned < Forekast Then Cells(Måned + 1, ActiveCell.Column).Select Exit Sub End If
If Cells(1, ActiveCell.Column) = "Måned" Then Forbrug = Cells(38, ActiveCell.Column - 2).End(xlUp).Row Forekast = Cells(38, ActiveCell.Column - 1).End(xlUp).Row Måned = Cells(38, ActiveCell.Column).End(xlUp).Row If Måned < Forbrug Or Måned < Forekast Then Cells(Måned + 1, ActiveCell.Column).Select Exit Sub End If
If Cells(1, ActiveCell.Column) = "" Then Forbrug = Cells(38, ActiveCell.Column - 3).End(xlUp).Row Forekast = Cells(38, ActiveCell.Column - 2).End(xlUp).Row Måned = Cells(38, ActiveCell.Column - 1).End(xlUp).Row If Måned < Forbrug Or Måned < Forekast Then Cells(Måned, ActiveCell.Column - 1).Select MsgBox (" Måned skal udfyldes") End If End If End Sub
glemte lige at min test version kun tester til række 38 dette tal ændres let med find/udskift i editoren vælg blot et tal som er rigeligt stort (max 65536)
Synes godt om
Ny brugerNybegynder
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.