vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Tabelle in Word ändern 
Autor: blauergaul
Datum: 27.07.05 10:40

Hi,
Ich habe mal wieder ein kleines Problem.
mit folgendem code:
Private Sub cmd_drucken_Click()
 
Dim WordAppl As Word.Application ' Word-Application
Dim WdDoc As Word.Document       ' Word-Dokument
Dim WordApplLiefNicht As Boolean ' Falls Word nicht läuft
Dim wdRng As Word.Range
Dim wdTable As Word.Table
Dim xi&
    ' Wenn Word nicht ausgeführt wird, Word starten:
    On Error GoTo errorMsgWord
    If WordAppl Is Nothing Then
        WordApplLiefNicht = True
        Set WordAppl = CreateObject("Word.Application")
    End If
    ' Dokument öffnen
    On Error GoTo errorMsgVorlage
    Set WdDoc = WordAppl.Documents.Add( _
                    Template:=App.Path & "\" & WordDocVorlage, _
                    NewTemplate:=False _
                )
    On Error GoTo 0
    ' Word unsichtbar machen
    WordAppl.Application.Visible = True
'===================================================
Startdatum = "01." & lbl_monatszahl.Caption & "." & Me.cmb_jahr.Text
Enddatum = DateAdd("m", 1, Startdatum) - 1
Set wdRng = WdDoc.Range(WdDoc.Range.End - 1, WdDoc.Range.End) 'EndewdRng.Text = 
' vbCrLf  ' Noch einen Zeilenumbruch anfügen
Set wdRng = WdDoc.Range(WdDoc.Range.End - 1, WdDoc.Range.End)
Set wdTable = WdDoc.Tables.Add(wdRng, 1, 13) 'nun die Tabelle einfügen
'Linien
For xi = -6 To -1
 wdTable.Borders(xi).LineStyle = 1  'wdLineStyleSingle
 wdTable.Borders(xi).LineWidth = 4  'wdLineWidth050pt = 4
 wdTable.Rows.Alignment = wdAlignRowCenter
Next
wdTable.Borders(-7).LineStyle = 0
wdTable.Borders(-8).LineStyle = 0
wdTable.Borders.Shadow = False
'Kopfzeile
wdTable.Cell(wdTable.Rows.Count, 1).Range.Font.Size = 10
wdTable.Cell(1, 1).Range.Text = "Tag"
wdTable.Cell(wdTable.Rows.Count, 2).Range.Font.Size = 10
wdTable.Cell(1, 2).Range.Text = "Uhrzeit"
wdTable.Cell(wdTable.Rows.Count, 3).Range.Font.Size = 10
wdTable.Cell(1, 3).Range.Text = "Temperatur"
'Bis 13 ___________________________________________
'Datum
'For dteDatum = dteAbDatum To dteBisDatum
For AktuellesDatum = Startdatum To Enddatum
 wdTable.Rows.Add
 If Arbeitstag(AktuellesDatum) = 0 Then
   wdTable.Cell(wdTable.Rows.Count, 1).Range.Font.Size = 11
   wdTable.Cell(wdTable.Rows.Count, 1).Range.Text = Format(AktuellesDatum, "dd." & _
     "ddd")
 Else
  wdTable.Cell(wdTable.Rows.Count, 1).Range.Font.Size = 11
  wdTable.Cell(wdTable.Rows.Count, 1).Range.Text = Format(AktuellesDatum, "dd." & _
    "ddd")
 End If
 If Arbeitstag(AktuellesDatum) = 0 Then
  ' Datum Ist EIN Feiertag
  wdTable.Cell(wdTable.Rows.Count, 1).Range.Font.Size = 11
  wdTable.Cell(wdTable.Rows.Count, 1).Shading.Texture = 150 'wdTexture15Percent
  wdTable.Cell(wdTable.Rows.Count, 2).Shading.Texture = 150
  wdTable.Cell(wdTable.Rows.Count, 3).Shading.Texture = 150
'Bis 13______________________________________________
 Else
  wdTable.Cell(wdTable.Rows.Count, 1).Range.Font.Size = 11
  wdTable.Cell(wdTable.Rows.Count, 1).Shading.Texture = 0 'wdTextureNone
  wdTable.Cell(wdTable.Rows.Count, 2).Shading.Texture = 0
  wdTable.Cell(wdTable.Rows.Count, 3).Shading.Texture = 0
'Bis 13________________________________________________
 End If
Next
    On Error GoTo keinDrucker
    ' Dokument drucken und warten bis Druck seitens Word abgeschlossen
    Call WdDoc.PrintOut(Background:=False)
keinDrucker:
    If Err.Number = 5140 Then
    MsgBox " Kein Drucker gefunden. " & vbCrLf & " Bitte Drucker einschalten" & _
      "und dann erneut drucken.", vbCritical
    ' Dokument schließen / nicht speichern
    WdDoc.Close wdDoNotSaveChanges
    ' Dokument zerstören
    Set WdDoc = Nothing
    ' Word beenden, falls wir es erst gestartet haben
    If WordApplLiefNicht Then
        WordAppl.Application.Quit
    End If
    Set WordAppl = Nothing
    Exit Sub
    End If
    ' Dokument schließen / nicht speichern
    WdDoc.Close wdDoNotSaveChanges
    ' Dokument zerstören
    Set WdDoc = Nothing
ClearExit:
    ' Word beenden, falls wir es erst gestartet haben
    If WordApplLiefNicht Then
        WordAppl.Application.Quit
    End If
    Set WordAppl = Nothing
    Exit Sub
errorMsgWord:
    MsgBox "Es konnte keine Verbindung zu Word hergestellt werden!", 16, _
      "Fehler"
    Exit Sub
errorMsgVorlage:
    MsgBox "Die Dokumentvorlage '" & WordDocVorlage & "' konnte nicht geöffnet" & _
      "werden !", 16, "Fehler"
    GoTo ClearExit
End Sub
erreiche ich folgendes Ergebnis.
http://www.hostonaut.de/members/blauergaul
Die Funktionen für die Feiertage besteht bereits.
Nun will ich aber nicht mehr alle Horizontalen zellen der Tabelle grau hinterlegen, sondern nur einzellne zellen wen ein Datum auf ein Feiertag/Wochenende fällt.
Danke schon einmal für eure Hilfe.
Gruß Blauergaul
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tabelle in Word ändern1.029blauergaul27.07.05 10:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel