Avatar billede kll1978 Nybegynder
21. august 2007 - 10:28 Der er 81 kommentarer og
1 løsning

Dynamisk word-skabelon

Jeg vil gerne lave et dynamisk word dokument (skabelon), hvori den skal hente data i excel, afhængige de kriterier man har valgt.

fx. når man åbner skabelonen, skal man først udfylde nogle kriterier, og på baggrund de oplysninger, skal den hente data i excel.

kriterier, der skal udfyldes:
salgschef nr: taste nr. (fx. 1-20 - eller dette kan løses ved brug af rullemenu)
måned: taste måned (fx. 1-12 / jan-dec eller dette kan løses ved brug af rullemenu)

I excel vil der være 20 arkfaner, hvori hver fane vil indholde data for hver salgschef. Opbygningen for disse arkfane vil være det samme. Dette vil gøre det nemmere, når der skal hentes data. Når man i word har valgt, hvilken salgschef, der skal hentes data fra, skal word kunne hente data fra den arkfane, som indeholde de data som vedr. den valgte salgschef.

Håber at nogen kan komme med en løsning på dette problem

Jeg kan godt maile opbygning (word og excel), så det bedre kan give en forståelse, hvordan det skal bygges op.
Avatar billede word-hajen Nybegynder
21. august 2007 - 13:49 #1
Lav de 2 rullelister (comboboxe) til hhv. salgschef og måned. Du bør have et sted i dit Excel-ark (hvis ikke du har det allerede), hvor du har listet alle salgscheferne; gerne i alfabetisk orden.

I vba sætter du en reference til Excel. Herefter laver du et objekt med Excel, som derefter kan åbne (sikkert skjult for brugeren) din Excel-fil. Fyld comboboxen med data fra Excel-arket.

På Events på dine comboxe kan du således tage fat i de data, som du har behov for, ud fra den valgte salgschef/måned, da du har fuld adgang til Excel-arket.

Husk at slutte det hele pænt af igen, så du får lukket Excel-fil og slettet referencen til Excel.
Avatar billede kll1978 Nybegynder
21. august 2007 - 16:42 #2
Nu er jeg ikke nogen haj til VBA, måske du kan hjælpe lidt her, muligvis lave et eks.

Alternativt kan man ikke opbygge det på en måde, når man har valgt hvilken saglschef og måned, at den selv går ind i excel og henter de ønsket data?
Avatar billede word-hajen Nybegynder
21. august 2007 - 16:51 #3
Hvor meget vba kan du selv? Og jo, formålet var at hente data fra det rigtige ark i din Excel-fil. Hvad skal der i øvrigt ske med dem? Skal de blot vises, sættes ind i et dokument eller hvad?
Avatar billede kll1978 Nybegynder
21. august 2007 - 22:58 #4
det er meget begrænset hvad jeg kan i VBA.

Jeg kan sende dig word og excel filerne, så du bedre kan få et indtryk af, hvordan det skal bygges op.

Her kan du hente filerne (de er pakket ned som zip fil.)

http://www.megaupload.com/?d=KL7GUOVO
Avatar billede word-hajen Nybegynder
21. august 2007 - 23:38 #5
Jeg vil gerne hjælpe med input og idéer, hvis du kan noget selv, men jeg vil ikke lave en fuld løsning.
Avatar billede kll1978 Nybegynder
22. august 2007 - 07:20 #6
Hvis du kan guide mig, hvordan jeg skal lave det, vil det være en stor hjælp
Avatar billede word-hajen Nybegynder
22. august 2007 - 08:58 #7
Jeg vil gerne hjælpe, men så må du fortælle mig, hvad dit niveau i vba rent faktisk er. Hvor meget af min kommentar 21/08 13:49:06 er volapyk for dig?
Avatar billede kll1978 Nybegynder
22. august 2007 - 09:55 #8
Din kommentar 21/08 13:49:06: Jeg kan finde ud af lave rullelister, men comboboxe der har jeg aldrig prøvet før.
Fra andet afsnit og derefter er jeg hoppet af kæden.

Jeg vil gerne lige præcisere, at når man åbne skabelonen/word dokumentet skal der meget gerne dukke et eller andet udfyldning, hvor man så vælge salgschef og måned. Her skal word gerne automatisk hente data i excel (gerne skjult, som du skriver - hvis det kan lade sig gøre). Den første figur i word, skal den hente data for måneden, mens de øvrige tabeller (for mdr. + akk.) skal der hentes data fra jan til juni md. fx.

Håber at dette gav et bedre billede af hvordan det skal løses
Avatar billede word-hajen Nybegynder
22. august 2007 - 10:29 #9
En rulleliste og en combobox er det samme :-)

Hvis du hopper af fra 2. afsnit og ned, så har jeg en formodning om, at det alligevel bliver mig, der skal "lave det hele". Da jeg egentlig lever af det til hverdag, kommer jeg lidt i konflikt - både med mig selv og mit job - ved at lave en komplet løsning (gratis arbejde). Så hjælpe ja, det vil jeg gerne. Men her skal jeg lave hele løsningen, og det kan/vil jeg ikke.
Avatar billede kll1978 Nybegynder
22. august 2007 - 10:49 #10
Kan du så ikke guide mig, og måske komme med VBA forslag, så må jeg prøve mig frem - hvis det er ok med dig
Avatar billede word-hajen Nybegynder
22. august 2007 - 16:56 #11
Det kan jeg ikke (se kommentar 10:29:08). Men måske er der andre brugere, der træder til med en hjælpende hånd.
Avatar billede kll1978 Nybegynder
23. august 2007 - 07:34 #12
word-hajen: jeg takker for din hjælp

Er der andre der kan hjælpe eller komme med nogle forslag
Avatar billede gider_ikke_mere Nybegynder
23. august 2007 - 13:22 #13
Jeg har prøvet: http://www.racingcar.dk/eksperten/kll1978/test.rar

Tryk på knappen i arket for at hente data.

OBS: Begge ark skal ligge i c:\
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 11:20 #14
Det er langt fra et færdigt projekt, men kan hente få rækker fra Excel ind i Word. Det bør du selv kunne udbygge. Og et lille problem som jeg ikke ved hvordan jeg ordner: Efter hentning af data fra Excel, lukkes regnearket igen, men ikke Excel. Hvordan det gøres, ved jeg ikke.
Avatar billede kll1978 Nybegynder
24. august 2007 - 11:54 #15
jeg havde ikke set at du havde upload filen.

Jeg har hentet filen og lagt den i c:\

Åbner word dokuemntet og trykker på command knappen - intet sker, knappen bliver markeret. Hvis jeg dobbelt klikker påå knappen - kommer jeg i VB editor.

Gør jeg noget forkert?

Forresten har du mulighed for at pakke filerne ned i zip format - fordi jeg sidder på arbejdet, hvor jeg ikke har mulighed for at intallere programmer på computern (sidder på en tynd client). Det vil være super.

"Efter hentning af data fra Excel, lukkes regnearket igen, men ikke Excel. Hvordan det gøres, ved jeg ikke." - muligvis word-hajen kan bidrage med noget

Jeg takker for dit ihærdigt forsøg for at hjælpe mig.
Avatar billede kll1978 Nybegynder
24. august 2007 - 12:03 #16
jeg har fået det til virke med knappen - det ser meget godt ud indtil videre
Avatar billede word-hajen Nybegynder
24. august 2007 - 12:06 #17
Det kan du tro, at jeg kan. Forudsat, at der er sat et objekt med Excel-applikationen (og det går jeg ud fra, at der er), så kan følgende bruges.

objExcel.Quit

Her har jeg selvfølgelig forudsat, at objExcel tidligere er sat til Excel-applikationen. Den skal selvfølgelig lige rettes til iht. akyhnes kode/objekt (som jeg ikke har set).
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 12:12 #18
Det virker. Det skal så være Y.Quit før linien:

Documents("Verbal rapport.doc").Activate
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 12:18 #19
kll1978: Jeg har altså ikke bygget noget fejlsikring ind i koden. Findes arket, o.s.v.
Hvilke rækker der skal hentes, kan jeg ikke lige gennemskue.
Ligeledes ved jeg ikke hvordan tabelnavne findes, hvis de overhovedet har et navn i Word. Derfor koden Documents("Verbal rapport.doc").Tables(1).Select.

Det er mit første Word VBA projekt, men vil gerne prøve at hjælpe hvis jeg kan.
Avatar billede word-hajen Nybegynder
24. august 2007 - 12:24 #20
-> akyhne. Tabelkolonner/rækker har ingen navne i Word, men findes som udgangspunkt ved at tælle række/kolonne. Men... :-) man kan i Word sætte et bogmærke i en celle, kolonne, række osv. og bruge den som markør til at aflæse hhv. række/kolonnenummer, hvis ens kode skal være dynamisk.
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 12:31 #21
Det var tabellens navn i Word jeg tænkte på, ikke selve cellerne i tabellen.

Kan disse kaldes med noget a la
("Verbal rapport.doc").Tables("etnavn").Select
frem for
("Verbal rapport.doc").Tables(1).Select
Avatar billede word-hajen Nybegynder
24. august 2007 - 12:40 #22
Tabeller har intet navn i Word, kun et nummer. Medmindre man bruger et bogmærke rundt om, så kan man tilgå tabellen igennem bogmærket.
Avatar billede kll1978 Nybegynder
24. august 2007 - 13:03 #23
hvordan laver man så disse bogmærker?
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:11 #24
Det er ikke strengt nødvendigt. Du kan blot eksperimentere med hvilken tabel der bliver sat i med

("Verbal rapport.doc").Tables(1).Select
("Verbal rapport.doc").Tables(2).Select
o.s.v

Enten er det i den rækkefølge de ligger i arket, eller den rækkefølge du har sat dem ind i dokumentet med.
Avatar billede kll1978 Nybegynder
24. august 2007 - 13:23 #25
hvad nu hvis tabellen i dette tilfælde består af to rækker, hvordan sættes tallene ind
Avatar billede kll1978 Nybegynder
24. august 2007 - 13:29 #26
jeg har fundet ud af det - ved at ændre i Cell(x) til det ønskede række
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:29 #27
Det er det der bestemmes med

Tables(1).Cell(1, I + 1)
Tables(1).Cell(2, I + 1)
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:31 #28
Cell(x, Y)

X er nedad, y er til højre, ganske som i Excel.
Avatar billede kll1978 Nybegynder
24. august 2007 - 13:33 #29
hvordan kan ændre userform til at det skal være med liste istedet for punkter
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:40 #30
Indsæt en listbox.

Kør denne ved eksempelvis userform1.activate

ListBox1.AddItem ("Sælger1")
ListBox1.AddItem ("Sælger2")
o.s.v
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:47 #31
Eller

sælgere = Array("Sælger1", "Sælger2", "Sælger3", "Sælger4", "Sælger5")
For I = 0 To UBound(sælgere)
    ListBox1.AddItem sælgere(I)
Next
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:55 #32
Og din CommandButtons kode skal så se således ud:

Private Sub CommandButton1_Click()
test (ListBox1.ListIndex + 1)
UserForm1.Hide
End Sub
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 13:57 #33
Eller

Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
    test (ListBox1.ListIndex + 1)
    UserForm1.Hide
Else
    MsgBox "Vælg en sælger!"
End If
End Sub
Avatar billede kll1978 Nybegynder
24. august 2007 - 14:24 #34
ser det dette rigtigt ud

Private Sub UserForm_Click()
sælgere = Array("Sælger1", "Sælger2", "Sælger3", "Sælger4", "Sælger5")
For I = 0 To UBound(sælgere)
    ListBox1.AddItem sælgere(I)
Next
End Sub
Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
    test (ListBox1.ListIndex + 1)
    UserForm1.Hide
Else
    MsgBox "Vælg en sælger!"
End If
End Sub
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 14:36 #35
UserForm_Activate...

Private Sub UserForm_Activate()
sælgere = Array("Sælger1", "Sælger2", "Sælger3", "Sælger4", "Sælger5")
For I = 0 To UBound(sælgere)
    ListBox1.AddItem sælgere(I)
Next
End Sub

Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
    test (ListBox1.ListIndex + 1) 'Vælger arknr. i Excel
    UserForm1.Hide
Else
    MsgBox "Vælg en sælger!"
End If
End Sub
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 14:38 #36
Har du fået lavet det med indsættelse af de andre data?
Avatar billede kll1978 Nybegynder
24. august 2007 - 15:02 #37
ja, det lykkedes mig at indsætte data til de øvrige tabeller.

Men jeg kan ikke lave den listbox, der kommer ikke noget frem, hvor jeg kan vælge sælgere
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 15:21 #39
Toolbox http://www.racingcar.dk/eksperten/billeder/kll19784.jpg
kommer frem når du trykker et tomt sted på din userform.
Avatar billede kll1978 Nybegynder
27. august 2007 - 22:15 #40
nu har jeg lavet den listbox og har fulgt din vejledning. I første omgnag der kører den som den skal, men hvis man igen trykker på knappen, bliver den tilføjes 5 yderlige sælgere; dvs. i listen vises der sælgere 1-5 og sælgere 1-5. Hvis man vælger "de tilføjet" sælgere, så vil den ikke overføre data, den åbner bare excel filen og intet sker.
Avatar billede kll1978 Nybegynder
27. august 2007 - 22:20 #41
hvordan indsætter jeg data i den første figur, hvor der er fire bokse. jeg ved at jeg skal lave bogmærker, og jeg har fundet ud af, hvordan det skal gøres, men koden til at den automatisk hente data i excel for en bestem måned, som man vælge i formularen. - wordhajen kan måske give nogle tips
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 04:52 #42
Sv. 27/08-2007 22:15:59:

Private Sub UserForm_Activate()
If ListBox1.ListCount > 0 Then Exit Sub 'Hvis sælgere er indsat, skippes ny indsættelse
sælgere = Array("Sælger1", "Sælger2", "Sælger3", "Sælger4", "Sælger5")
For I = 0 To UBound(sælgere)
    ListBox1.AddItem sælgere(I)
Next
I = I - 1
ListBox1.Height = I * 18
End Sub
Avatar billede word-hajen Nybegynder
28. august 2007 - 20:51 #43
Jeg går ud fra, at akyhnes kode henter de data fra Excel, som der er behov for, og at du derfor "blot" har behov for at få fyldt data ind i dine bogmærker. Det gøres på følgende måde:

Antagelse: At du har et bogmærke, der hedder SalgMåned, som skal udfyldes.

ActiveDocument.Bookmarks("SalgMåned").Range.Text = "det der er hentet fra Excel"

Vær opmærksom på, at koden fejler, hvis du ikke har et bogmærke, der hedder "SalgMåned" (giver fejl nr. 5941).
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:32 #44
De omtalte figurer der skal rettes tekst i, er autofigurer.
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:37 #45
Avatar billede word-hajen Nybegynder
28. august 2007 - 21:38 #46
Der skal vel ikke rettes tekst, men indsættes tekst? Det er i øvrigt lige meget, om det er autofigurer eller ej, hvis du/kll1978 bruger bogmærker i autofigurerne (hvilket jeg ville gøre) til at bestemme et "her-skal-udfyldes-punkt".
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:41 #47
Jeg fandt i aftes ud af at de kan nås med ActiveDocument.Shapes(1).CanvasItems(4).Select

Jeg aner bare ikke hvordan man udskifter krydserne med tal.

Omsætning –prcentafvigelse i forhold til budget
Mdr.: x,x %
ÅtD.: x.X %
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:44 #48
Nej, som jeg forstår det, skal der rettes tekst.
Avatar billede word-hajen Nybegynder
28. august 2007 - 21:47 #49
Argh - hader Drawing Canvas. Har du mulighed for at sætte et bogmærke rundt om x,x? (markér x,x, klik på Ctrl+Shift+F5, skriv et navn til bogmærket - ingen mellemrum, specialtegn osv.).
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:51 #50
Ja, det virker.
Avatar billede kll1978 Nybegynder
28. august 2007 - 21:57 #51
kan man ikke ud fra formularen.

1. Vælg Salgschef
2. Vælg den aktuelle måned, som der skal hentes data fra excel til autofiguren. (har fundet ud at det skal være bogmærke, men hvor pokker det skal kodes ind, der er jeg hel bleg.
3. Tabellerne: der går den automatisk henter data, uden at der skal vælges noget (der er jeg med på hvordan koden skal være.

Dvs. brugeren skal kun tage stilling til to ting. Salgschef og måned.
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 21:58 #52
Og værdien kan så tilsyneladende skiftes med

Set T = ActiveDocument.Bookmarks("AAA").Range
With T
    .Text = "Et tal"
End With

såfremt bogmærket hedder AAA
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 22:02 #53
kll1978: Du kunne sagtens sætte bogmærker på alle celler i tabellerne, men der vil det være nemmere at bruge metoden jeg lavede til dig.

Men hensyn til at skifte værdien i dine turkis (ikke grønne ;-)) bokse, skal du markere hvert "x,x" tekst, og give dem et separat bogmærke. Du kan så bruge 28/08-2007 21:58:31 til at rette teksten.
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 22:03 #54
Hvis du mangler hjælp, så mail arket til gt4(Snabel)racingcar(punkt)dk
Avatar billede gider_ikke_mere Nybegynder
28. august 2007 - 22:03 #55
arket = dokumentet ( Excelfikseret :-) )
Avatar billede word-hajen Nybegynder
28. august 2007 - 22:08 #56
Der er ingen grund til at sætte ranget som i kommentaren 21:58:31, medmindre du efterfølgende vil sætte bogmærket rundt om det nu indsatte tal/tekst, hvilket er nødvendigt, hvis man skal kunne udfylde det samme område flere gange. Ellers er det fuldt ud tilstrækkeligt at bruge den kode, som jeg har i kommentaren 20:51:55.
Avatar billede kll1978 Nybegynder
28. august 2007 - 22:08 #57
jeg prøver mig frem. Jeg takker for din store indsats samt word-haj, med dine gode råd.
Avatar billede word-hajen Nybegynder
28. august 2007 - 22:09 #58
Velbekomme.
Avatar billede kll1978 Nybegynder
29. august 2007 - 08:58 #59
Sv. 27/08-2007 22:15:59:

Private Sub UserForm_Activate()
If ListBox1.ListCount > 0 Then Exit Sub 'Hvis sælgere er indsat, skippes ny indsættelse
sælgere = Array("Sælger1", "Sælger2", "Sælger3", "Sælger4", "Sælger5")
For I = 0 To UBound(sælgere)
    ListBox1.AddItem sælgere(I)

Private Sub CommandButton1_Click()
If ListBox1.ListIndex > -1 Then
    test (ListBox1.ListIndex + 1) 'Vælger arknr. i Excel
    UserForm1.Hide
Else
    MsgBox "Vælg en sælger!"
End If
End Sub
Next
I = I - 1
ListBox1.Height = I * 18
End Sub

Hvis jeg gerne vil have Combobox istedet for ListBox, hvad skal koden så være?
Avatar billede kll1978 Nybegynder
29. august 2007 - 10:25 #60
Y.Sheets(Arket).Activate
Akk = Y.Sheets(Arket).Range("B18:N18")
OmsAkk = Y.Sheets(Arket).Range("B16:N16")
LønomkAkk = Y.Sheets(Arket).Range("B17:N17")

With Y
    .workbooks.Close
End With

Y.Quit

Documents("Verbal rapport.doc").Activate
Documents("Verbal rapport.doc").Tables(1).Select

For I = 1 To 12
    Documents("Verbal rapport.doc").Tables(1).Cell(2, I + 1).Select
    Selection.Text = Round(Akk(1, I) * 100, 2)
    Selection.Font.Name = "Verdana"
    Selection.Font.Size = 8

Next

For I = 1 To 12
    Documents("Verbal rapport.doc").Tables(2).Cell(2, I + 1).Select
    Selection.Text = Round(OmsAkk(1, I) * 100, 2)
    Selection.Font.Name = "Verdana"
    Selection.Font.Size = 8
    Documents("Verbal rapport.doc").Tables(2).Cell(3, I + 1).Select
    Selection.Text = Round(OmsAkk(1, I) * 100, 2)
    Selection.Font.Name = "Verdana"
    Selection.Font.Size = 8
   
Next

    For I = 1 To 12
    Documents("Verbal rapport.doc").Tables(3).Cell(2, I + 1).Select
    Selection.Text = Round(LønomkAkk(1, I) * 100, 2)
    Selection.Font.Name = "Verdana"
    Selection.Font.Size = 8
   
Next
   
End Function


Jeg får besked når jeg kører denne "Run time error  13: Type mismatch

Området "Selection.Text = Round(Akk(1, I) * 100, 2)" bliver markeret med gult.

Jeg har prøve at kigge tilbage til tidligere koder, og prøve kørt dem, og uden problmer. Men når jeg tilføjes mine ændringer, så vil den ikke køre som den skal.
Avatar billede kll1978 Nybegynder
29. august 2007 - 13:44 #61
akyhne - jeg har sendt dig en mail. Se mailen.
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 14:32 #62
Den fejler blot fordi August til December ikke indeholder nogen værdi. Man kan ikke afrunde ingenting til tal med 2 decimaler ;-). Jeg laver en løsning.

Hvor skal de turkis bokse hente data fra?
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 14:55 #63
Den med ændringen af bogmærkerne skal jeg lige kigge nærmere på, da bogmærket bliver slettet når man ændrer værdien af det med koden
ActiveDocument.Bookmarks("ExtOmsProcent").Range.Text = "2,1"
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 15:07 #64
... og fandt en løsning.
Avatar billede kll1978 Nybegynder
29. august 2007 - 15:14 #65
turkise bokse skal hente data fra det samme datagrundlag som tabellerne

fx. hvis man i formularen - via. fx en combobox/liste vælger juni måned, skal der hente data fra kolonne G =>
Ekstern oms. (G7)
Pers. omk (G8)
Markedsf.omk (G9)
Øvrige omk. (G10)

håber at det gav en mening
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 15:20 #66
Jeg fik lige sendt arket til dig, uden at se din sidste kommentar.
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 15:21 #67
For filen !@£$#%!...
arket = DOKUMENTET!!! (Excelfeber...)
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 15:23 #68
Det er så de turkis bokse der skal udfyldes med data fra måneden?
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 16:01 #69
Dokumentet afsendt.
Avatar billede kll1978 Nybegynder
29. august 2007 - 16:51 #70
ja, det er de turkise bokse der skal udfyldes med data fra måneden fra excel arket, automatisk, den måned man har valgt i formularen.
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 17:33 #71
Det er lavet i det sidste dokument jeg mailede.
Avatar billede kll1978 Nybegynder
29. august 2007 - 19:16 #72
Jeg takker mange gange. Det ser ud til at ligne det som jeg gerne vil have.

Jeg har et spg. til denne kode

MaanedsStatistik = Y.Sheets(Arket).Range("A7").offset(0, Maaned).Range("A1:A4")

Hvad betyder "Offset(0, Maaned).Range("A1:A4")

I excel arkerne er dette område tomt. Hvorfor denne reference til dette område?
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 20:15 #73
Lad os sige maaned er 7:
Spring til A7. Vælg cellen der er 0 celler nedad og maaned (som er 7) celler til højre for. Resultat celle G7. Fra G7 - vælg range("A1:A4"), altså G7:G10.

Så det er ikke range("A1:A4") i forhold til arkets top, men i forhold til det range der er angivet før .range("A1:A4")

Range("A1").range("A1:A4").select vil vælge celle A1 til A4
Range("G1").range("A1:A4").select vil vælge celle G1 til G4
Range("B2").Offset(-1, 3).range("A1:A4").Select vil vælge E1 til E4

Hvis du i VBA editoren går op og vælger "view" -> "Locals Window", kan du indsætte debug points som stopper koden et bestemt sted. I "Locals" vinduet, kan du så se værdierne for dine variabler. Det kan give en stor hjælp ved udvikling og fejlsøgning.
Avatar billede gider_ikke_mere Nybegynder
29. august 2007 - 20:25 #74
Eksemplet er fra Excel, men princippet er det samme: http://www.racingcar.dk/eksperten/billeder/kll1978_6.jpg
Avatar billede kll1978 Nybegynder
29. august 2007 - 23:01 #75
Koden her

Dim rngRange
Bogmaerker = Array("", "ExtOmsProcent", "MarkedsfOmkProcent", "OvrOmkProcent", "LoenOmkProcent")
For S = 1 To UBound(MaanedsStatistik)
    If ActiveDocument.Bookmarks.Exists(Bogmaerker(S)) = True Then
        Set rngRange = ActiveDocument.Bookmarks(Bogmaerker(S)).Range
        If IsNumeric(MaanedsStatistik(S, 1)) Then
            rngRange.Text = Round(MaanedsStatistik(S, 1) * 100, 2)
        Else
            rngRange.Text = MaanedsStatistik(S, 1)
        End If
        rngRange.Bookmarks.Add Bogmaerker(S)
    Else
        Bogmærkefejl = Bogmærkefejl & "Bogmærket " & Bogmaerker(S) & " blev ikke fundet!" & Chr(10)
    End If
    Set rngRange = Nothing

De data der bliver sat ind bliver gange med 100, men jeg har nogle nøgletal, som ikke skal ganges, hvad heddes koden så?
Avatar billede gider_ikke_mere Nybegynder
30. august 2007 - 00:13 #76
Hvilke form for data er det så?
Avatar billede kll1978 Nybegynder
30. august 2007 - 07:11 #77
data skal bare overføres fra excel som det er, fx et nøgletal der hedder 2,45, som ikke er et procenttal.
Avatar billede kll1978 Nybegynder
30. august 2007 - 07:39 #78
jeg kommer senere tilbage med den kode, som jeg har siddet og "leget" med, som jeg ikke kan få til at virke, som jeg gerne vil have.
Avatar billede kll1978 Nybegynder
06. september 2007 - 15:18 #79
sorry, jeg ikke har vendt tilbage - har desværre haft lidt travlt og har derfor ikke set på det. Kan du ikke give et svar, så du kan få dine point i første omgang.

Jeg vender tilbage når jeg lige får tid til at kigge på det. På forhånd mange tak for din hjælp og word-haj.
Avatar billede gider_ikke_mere Nybegynder
06. september 2007 - 19:00 #80
Ok.
Avatar billede kll1978 Nybegynder
06. september 2007 - 23:16 #81
jeg takker for din hjælp

Vender straks tilbage, når jeg lige får tid til at kigge på det igen.
Avatar billede gider_ikke_mere Nybegynder
07. september 2007 - 07:57 #82
Ok, og tak for point. Det var udfordrende at forske lidt i Word VBA.
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
Tag et kursus i Word og øg effektiviteten

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