11. februar 2010 - 16:13Der er
26 kommentarer og 1 løsning
overfører data fra Userform (word) til både dokument og excel
Hejsa,
Jeg håber der er nogen som kan hjælpe lidt, for det er godt nok ikk mange spm herinde omkring dataflyt fra word til excel men der er tilgengæld masser den anden vej.
Jeg har en Userform i Word2007 som udfylder en masse data i flere dokumenter, men nu kunne jeg godt tænke mig at nogle af disse data som indtastes i Userform også kom over i et excel ark, eller access.
Meningen med det er at det skal fungere som slags arkiv/registrering af disse inputs nogle af dem.
Jeg kunne godt tænke mig at de data fra Userform som skal bruges både i word og excel overføres til begge steder fra USerform, dvs helst ikk nogen kæder eller lign.
Men gerne noget kode som flytter værdien over i begge steder fra Userform.
Og så har jeg et andet lille problem som driller mig lidt. Jeg har et felt i min Userform hvor der indtastes en dato f.eks 11022010, jeg ville så gerne have det konverteret inden den smider det over i dokumenter til dato format dd.mmm.YYYY Lang dato format. Jeg har forsøgt at lave noget dato kode under Change_dato() Men det gjorde bare at den aktuelle dato kom på istedet.
Håber jeg har forklaret mig godt nok, ellers bare spørg.
JA skal nok vise mit forsøg på dato ændring, men det må vente til jeg kommer hjem så for skal lige finde det på en gammel udgave da jeg har slettet det i nuværende fordi det ikke virkede.
Ja igår aftes blev altså til nu da jeg arbejde sent igår.
Jeg har ledt og ledt, men har desværre i min frustration fået slettet det.
Men husker det som jeg forsøgte med noget a´la´:
Privat Sub txtDato_Change()
Dim strDato As String strDato = Format(Day(Date), "dd") & Format(Month(Date), "mmm") & Format(Year(Date), "YYYY")
txtDato.Value = strDato
Eller noget i den retning , men som sagt når dette bliver indsat så bliver der sat aktuel dato på altså system dato. Det jeg bare gerne ville var at man kunne indtaste f.eks 12022010 i feltet i min Userform og så bliver output lavet om til 12 feb 2010 på dokumentets DocVariable.
som jeg kan se at henviste link udemærket omhandler kopiering af data fra word til excel. Men de viste eks. forudsætter markering af tekst i word, dette ville jeg gerne undgå.
Men mit problem er at jeg har lavet Userform som bliver udfyldt og så derefter sætter værdier ind i flere forskellige dokumenter alt efter hvilken valg som er blevet fortaget, dvs der er flere Array´s
Så derfor er jeg ude efter noget hvor indtastet værdier i USerform (word) bliver smidt direkte over i excel. Evt. kunne det være en idé at excel filen blev placeret i array´s hvis det som sådan kan lade sig gøre.
Access kan også bruges hvis dette giver bedre muligheder for overførelse af data.
Ja, du skulle selv arbejde lidt videre med koden - jeg kender jo ikke din userform eller det regneark der skal overføres til.
Dim ExcelApp As Excel.Application Set ExcelApp = New Excel.Application With ExcelApp .Application.Visible = True .Workbooks.Open FileName:="c:\test.xls"
'Her skal du skrive den kode der indsætter teksten fra din userform f.eks.
Range("A1").Value = txtNavn.Text
'Hvis du har et felt, der hedder txtNavn på din userform
.ActiveWorkbook.Save .Quit End With Set ExcelApp = Nothing
Ahhh, P.. nu kan jeg ligepludselig ikke åbne får en fejl "5151" hvor word ikke kan åbne dokumentet muligvis beskadigt. den forslår at enten reparer filen eller åbne med konverterings program.
der hvor den fejler viser Debug at det er den første fil i Array som ikk kan åbnes.
Men hvis jeg åbner den via Åben ved officeknappen så åbner den fint. og den ser ikk ud til at have nogen beskadigelse. Men jeg havde en "uventet" nedlukning og derved kan der være sket noget, men bare ikk noget man kan se.
Ok, nu er jeg ved at rive det sparsomme hår jeg har tilbage helt ud, af bare arrighed......
nu har jeg prøvet at reparer filerne og det hjalp intet og så prøvede jeg at lave en sprit nye dot filer og det hjalp lige fedt så prøvede jeg at installere office på ny og dette har nu heller intet hjulpet.
Så hæng lige på jeg bliver nød til at lave et spm omkring dette og håbe nogen ved hva hulan der er galt.
Det kører rigtig fint med overførelse af data til Excel, endda super godt, dog har jeg opdaget nogle problemer som opstår hvis man undlader at udfylde nogle felter nogen gange.....så kommer data fra næste post til at stå en række højre op da koden altid fylder ud i første tomme felt.
Findes der måske en kode som gør at den efterlader felter tomme og rykker videre til næste.
Og så kan jeg simplthen ikk få den dato kode til at virke. enten så er der fejl i koden "Type mismatch" eller også hvis jeg laver lidt om på det så kan jeg få den til at virke, dog pånær at den skriver fast i feltet dvs det er låst, man kan ikk skrive i det eller slette det for den sags skyld.
Og hvis man under Debug holder musen hen over så kan man se f.eks dateDato har værdi som = 00:00:00 ligner jo nærmest en tids format. Og må lige sige at den altså melder fejl lige så snart man taster det første tal.
Nej, som jeg skriver tager man udgangspunkt i en kolonne, hvor der altid er værider til at finde den række der skal indsættes i og derfra bruger man offset til at komme vandret til den kolonne, der konkret skal indsættes i.
Det er interessant at vide, hvilen værdi der står i strDato når koden fejler.
hvordan offsetter jeg så lige fra første tomme felt som den jo altid indsætter værdi i.
ja du må undskylde jeg spørger dumt, men søge funktionen i 2007 er intet værd, fortryder rigtig meget at jeg er sprunget på office 2007. Når men finder vel nok ud af det hen af vejen :-)
mht strDato så står der det første tal som man taster i txtDato og så fejler den
Så fandt jeg da også lige ud af det med dato formatet.
Koden var sådan set rigtig nok, var bare for det første placeret forkert og for det andet have jeg samme strDato et andet sted, og ville derfor ikk gå videre.
så derfor slettede jeg bare linien:
strDato = txtdato.Value
Og så virker det. Nu mangler jeg bare at løse nogle små "skønheds fejl og nogle forbedringer så det bliver helt i top.
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.