12. juli 2010 - 23:11Der er
15 kommentarer og 1 løsning
Hvorfor gemmer koden kun een værdi...
Hej eksperter,
Jeg forsøger at gemme en række værdier i tekst- og combobokse fra en userform til et worksheet med klik på en kommandoknap.
Først findes den række hvor de rigtige data står (ud fra en unik ID værdi i en combobox "cbid" i userformen). Derefter forsøges at gemme værdierne fra userformens kontrolelementer i cellerne i kolonnerne til højre for kolonne B (som indeholder ID):
Dim celle2 As String
Range("B20").Select Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select celle2 = ActiveCell.Value If celle2 = cbid.Value Then
Kan nogen sige hvorfor den kun bliver gemt den øverste værdi? De sidste er skrevet ud, det ved jeg, men de bliver heller ikke gemt hvis man aktiverer dem igen...
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
@Nicolai: Gode forslag - jeg prøver dem af og vender tilbage!
@newbieatphp: Thanx, men jeg forsøgte at skrive nederst i mit spgm at jeg godt er klar over at de er udkommenteret - jeg har blot skrevet "skrevet ud". Det er for at have så lidt variable i gang under fejlsøgningen
Der bliver også kun skrevet i den første celle (txtnavn.text) med den her kode:
Dim celle2 As Long
Range("B20").Select Do Until ActiveCell.Value = Null ActiveCell.Offset(1, 0).Select celle2 = ActiveCell.Value If celle2 = cbid.Value Then ActiveCell.Select Exit Do End If Loop
Problemet var, at den boks der vises, var sat til automatisk at skulle opdateres, og da navnet var en af de to ting som skulle vises, så blev en anden makro kørt selvom makroen til at gemme var igang.
Da det kun var en celle det drejede sig om, så ændrede vi blot på rækkefølgen af hvordan tingene blev gemt, således at navnet var det sidste der blev lagret og der ikke var flere ting i makroen der skulle udføres.
Så når navnet blev gemt, så blev listen også automatisk opdateret overfor brugeren.
Hey :). Ferie - så jeg kommer lidt sent ind med svar, så tak til newbieatphp. Her er hans løsning helt konkret:
Idet du har lavet cbid_change til at skulle indeholde mere end blot id, så indgår netop navnet også i cbid_change. Selvom der ikke bliver indsat et ny string under navn, så bliver den stadig ændret.
Som jeg ser det, så er der bl.a. følgende muligheder for at undgå problemet:
- At fjerne navn-listen fra listen i cbid (ikke mit foretrukne valg, da den kan være med til at hjælpe brugeren til at vælge den rigtige)
- Da det kun er navn-listen (udover id), som indgår i cbid-listen, så vælg at sætte navn til sit, således kommer koden til at se således ud:
- Ellers kan du gøre det, at du har en række hvor du lager den valgte infomation, gemmer det der, også kopiere hele rækken op når der trykkes gem.
De sidste to løsninger burde virker uden problemer, vil nok selv vælge den midterste, da koden allerede er lavet dertil.
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.