Avatar billede lassel Nybegynder
29. november 2006 - 22:25 Der er 4 kommentarer og
1 løsning

Specielt udvalgt excel data ,paste i word

Hey, i får lige koden, som den er indtil nu, med det samme, som det første.

Sub PrintJobkort()
Dim appWD As Word.Application, dx As Document
    Set appWD = CreateObject("Word.Application")
    appWD.Visible = True
   
    appWD.Documents.Add

        Sheets("Overblik").Select
        appWD.WordBasic.Insert "Printet: "
        appWD.Selection.InsertDateTime
        appWD.WordBasic.Insert vbCrLf & "Jobkort: " & Range("B1") & vbCrLf
        appWD.WordBasic.Insert "Station: " & i & vbCrLf & vbCrLf
        appWD.WordBasic.Insert "Forventet tid per proces:" & vbCrLf
        Sheets("Boksplanlægning").Select
        Range("07:O100").Copy
        appWD.Selection.PasteSpecial
        Range("N7:N100").Copy
        appWD.Selection.PasteSpecial
        appWD.Selection.InsertBreak
 
'      ActiveDocument.SaveAs Filename:="JobKort"
 
End Sub

Der hvor jeg har et problem er ang:
        Range("07:O100").Copy
        appWD.Selection.PasteSpecial
        Range("N7:N100").Copy
        appWD.Selection.PasteSpecial

For det jeg "egentlig" ønsker er, at der kun bliver kopieret/pastet de felter hvor der er indhold i O-kolonnen, og hvis der er indhold i O-kolonnen så skal den respektive værdi i N-kolonnen sættes ind ved siden af.

Dvs. hvis f.eks. O9 har indholdet: Tekst og N9 værdien: 6 så skal der pastes i word i en linie:
Tekst: 6

Og der pastes så kun de linier i range("O7:O100") hvori der findes data, dvs. mange felter er egentlig tomme.

Ved ikke om det bliver alt for komplekst det jeg roder mig ud, så en ekspertvurdering om det overhovedet er muligt er også velkommen. Er ret ny til det her, men er da kommet lidt af vejen, det så først her det bliver svært :)

På forhånd mange tak.
Avatar billede lassel Nybegynder
29. november 2006 - 23:28 #1
Okay, jeg kom lidt længere, jeg er inde på noget med:
        For i = 8 To 100
            If Range("O" & i).Text <> "" Then
                appWD.WordBasic.Insert "" & Range("O" & i) & ": " & Range("N" & i) & vbCrLf
            End If
        Next i

Og det virker sådan set, bortset fra at if-sætningen åbenbart "altid" gælder, hvordan kan det være... hvert felt i excel-arket har godt nok en if-sætning a la =IF($P10="";"";$D10)

Men er det nok til at visual basic ser det som en valid tekststreng, den skal jo kun tage det med hvis =IF($P10="";"";$D10) giver feltet en "egentlig" tekst.

Hmmm
Avatar billede kabbak Professor
29. november 2006 - 23:32 #2
Prøv at fjerne Text, sådan

If Range("O" & i)<> "" Then
Avatar billede lassel Nybegynder
29. november 2006 - 23:42 #3
Det virker, tak for hjælpen... fantastisk. Læg et svar ;)
Avatar billede kabbak Professor
29. november 2006 - 23:44 #4
et svar ;-))
Avatar billede kabbak Professor
30. november 2006 - 08:54 #5
tak for point
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
Kurser inden for grundlæggende programmering

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