trn100 Skrevet 2. oktober 2019 Del Skrevet 2. oktober 2019 Hei.Jobber med et prosjekt hvor jeg bruker userforms for å oppdatere tabeller og har en kode som av en eller annen ubegripelig årsak ikke fungerer? Bruker nesten den samme koden for å legge til nye navn og fødselsdager og det fungerer, men å oppdatere/endre eksisterende får jeg ikke til?Userformen har en listbox hvor jeg klikker for å hente eksisterende info til ulike felter i userformen, f.eks. Navn, fødselsdag osv.I userformen har jeg en knapp for å oppdatere tabellen og denne knappene virker i forhold til navn, men ingen andre celler enn navnet blir oppdatert med det endrede innholdet??I koden har jeg lagt inn en ekstra linje bare for å sjekke at det blir skrevet noe til raden i arket, og denne fungerer samt navnet som også blir oppdatert, men ikke noe av de i mellom?Begriper det ikke, så hvis noen har tips hører jeg gjerne fra dere! :-) Private Sub cmdEndre_Click() 'Application.ScreenUpdating = False If Me.txtID = "" Then MsgBox "Det finnes ingen data å endre. Klikk et navn.", vbInformation, "Månedsplan" Exit Sub End If If Me.txtNavn = "" Then MsgBox "Du må taste inn et navn.", vbInformation, "Månedsplan" Exit Sub End If Dim FinnVerdi As Range Set FinnVerdi = A005000.Range("A3:A1000").Find(what:=Me.txtID.Value, LookIn:=xlValues, LookAt:=xlWhole) With A005000 FinnVerdi.Offset(0, 1).Value = Me.txtNavn FinnVerdi.Offset(0, 2).Value = DateValue(Me.txtFdag.Value) FinnVerdi.Offset(0, 3).Value = Me.txtForeldre FinnVerdi.Offset(0, 4).Value = Me.txtEPost FinnVerdi.Offset(0, 10).Value = "Hallo" End With Call SorterBursdager Call mndBursdager Me.lstBarn.RowSource = "BursdagerUfiltrert" Call TømSkjema cmdLeggTil.Enabled = True 'Application.ScreenUpdating = True End Sub Lenke til kommentar
Harald Staff Skrevet 3. oktober 2019 Del Skrevet 3. oktober 2019 Hei Nei si det... Vrient å vite uten det helt store bildet. Jeg laget en nummerrekke i A i Sheet1 som test, og skrellet ned koden din til dette: Sub Test() Dim FinnVerdi As Range Set FinnVerdi = Sheet1.Range("A1:A1000").Find(what:=9, LookIn:=xlValues, LookAt:=xlWhole) MsgBox FinnVerdi.Row FinnVerdi.Offset(0, 1).Value = "Harald" FinnVerdi.Offset(0, 2).Value = "Fin fyr" End Sub Det funker, også når Sheet1 ikke er aktivt ark. With - end With gjør ingenting slik du har skrevet det, så fjern det. Herfra kan jeg bare gi deg et par tips om feilsøking. Først, skriv alltid Option Explicit øverst i alle modulene dine. Excel blir mye strengere på å deklarere variabler (som du har inne allerede ser det ut som), men du får mye mer kvalifiserte feilmeldinger i retur. Gå Tools - Options og hak av for Require variable declaration, så gjør editoren dette automatisk fra nå av. Så har jeg lagt inn en MsgBox midt i prosedyren for å stoppe koden på et kritisk punkt og vise en viktig variabel. Gjør dette mange steder nedover i koden, så ser du hvor langt ting virker og hvor ting begynner å svikte. Fjern dem igjen når alt funker. Lykke til. Beste hilsen Harald Lenke til kommentar
trn100 Skrevet 4. oktober 2019 Forfatter Del Skrevet 4. oktober 2019 Hei Harald, og takk for svar!Option Explicit er alltid på etter tidligere forslag fra deg og jeg får ingen feil når jeg kompilerer.Jeg bruker som nevnt et skjema med en listbox når jeg henter data til input feltene i skjemaet, og etter at eventuelle data er endret skal dataene skrives til tabellen i regnearket. Når jeg bruker nesten den samme rutinen til å skrive inn en ny rad, fungerer også dette.Skjemaet ser slik ut, og dataene blir riktig hentet ved klikk på en linje i Listboxen.Jeg bruker denne koden hente dataene fra Listboxen til de øvrige feltene i skjemaet: Private Sub lstBarn_Click() cmdLeggTil.Enabled = False Dim i As Integer i = Me.lstBarn.ListIndex Me.txtNavn.Value = Me.lstBarn.Column(1, i) Me.txtFdag.Value = Format(Me.lstBarn.Column(2, i), "DD.MM.YYYY") Me.txtForeldre.Value = Me.lstBarn.Column(3, i) Me.txtEPost.Value = Me.lstBarn.Column(4, i) Me.txtID.Value = Me.lstBarn.Column(0, i) End Sub Det merkelige er at om jeg bytter ut txtFdag og txtForeldre med en fast tekst (F.eks. FinnVerdi.Offset(0, 3).Value = "Test") i så blir cellene i tabellen overskrevet?Bruker MsgBox trikset og den viser det samme som står i inputboksene i skjemaet før dataene blir skrevet til tabellen, men tabellen endrer seg altså ikke etter lagring?Jeg bruker nesten den samme koden for å legge inn nye navn i tabellen bortsett fra at jeg da skriver til første ledige rad, og det fungerer helt fint. Det er altså kun når jeg vil endre i tabellen at jeg har problemer.Takk igjen for gode tips! :-) Lenke til kommentar
Harald Staff Skrevet 4. oktober 2019 Del Skrevet 4. oktober 2019 Hei igjen Jeg overskuer ikke helt hvordan dette virker, verken mot regneark eller mot skjemaet internt. Men slik kan du skrive i en flerkolonnes listbox: Me.lstBarn.List(3, 2) = "Harald" Beste hilsen List(3, 2) Lenke til kommentar
trn100 Skrevet 5. oktober 2019 Forfatter Del Skrevet 5. oktober 2019 (endret) Hei igjen Jeg overskuer ikke helt hvordan dette virker, verken mot regneark eller mot skjemaet internt. Men slik kan du skrive i en flerkolonnes listbox: Me.lstBarn.List(3, 2) = "Harald" Beste hilsen List(3, 2) Den koden virket! Legger like godt ved hele prosjektet. Driver og skriver om en del slik at enkelte variabelnavn etc. er endret i forhold til det som står over. For enkelthetsskyld har jeg lagt inn en liten blå knapp på noen av arkene som starter Hovedmenyen hvorfra man kan starte "problem" formen med "Fødselsdager". Det er KUN koden i userformen frmBarn jeg trenger hjelp til, så se bort fra alt det andre som på langt nær er ferdig. frmBarn skal brukes til å legge til, endre og slette informasjon i arket Bursdager (A005000). Det fungerer å legge til nye! Det fungerer å slette! Når jeg skal endre en post er det imidlertid KUN navnet som blir endret og jeg klarer ikke å se problemet? Rowsource til Listboxen i skjemaet er den dynamiske listen BursdagerUfiltrert. Takk på forhånd! Månedsplan-BH.xlsm.txt Endret 5. oktober 2019 av trn100 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå