Thema Datum  Von Nutzer Rating
Antwort
Rot VBA falsche Formatierung nach Office wechsel
18.01.2018 08:21:49 Gast96580
Solved

Ansicht des Beitrags:
Von:
Gast96580
Datum:
18.01.2018 08:21:49
Views:
1124
Rating: Antwort:
 Nein
Thema:
VBA falsche Formatierung nach Office wechsel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Hallo zusammen,
 
ich habe ein Problem mit VBA in Word.
 
Und zwar hatten wir einen alten Server auf dem Windows Office 2003 lief. Über Word 2003 hat man mit Hilfe von dem VBA-Code dann eine Abfrage an eine Datenbank gesenden, die Daten in eine Tabelle einordnet. (Code steht unten)
 
Ergebnis alter Server unter Office 2003:
 
 
Jetzt ist es so, dass wir auf einen neues Server gewechselt sind auf dem Office 2010 läuft. Ich habe alle .dot-Dateien übertragen und die Vorlagen in die richtigen Ordner eingefügt, die Verbindung zur Datenbank funktioniert, aber die Formatierung der Daten ist nicht wie bei der 2003 Version.
 
Neues Ergebnis unter Office 2010:
 
 
 
Hier der CODE:
 
 
Schreiben des Artikels in das Einheiten-Datenfeld unter Berücksichtigung
' der Artikelart
         
      einheiten(einheitsArrayNummer, 1) = Rs3("einheit")
         
      If Left(Rs3("artikel").Value, 1) = "S" Then
        einheiten(einheitsArrayNummer, 2) = einheiten(einheitsArrayNummer, 2) & Rs3("artikel").Value & " " & versandDatum & " " & Rs3("vskzbel").Value & Chr(11) & Rs3("version").Value & " " & Rs3("absarti").Value & " " & Rs3("vskzkw").Value & Chr(11)
      ElseIf Left(Rs3("artikel").Value, 1) = "A" Then
        einheiten(einheitsArrayNummer, 3) = einheiten(einheitsArrayNummer, 3) & Rs3("artikel").Value & " " & versandDatum & " " & Rs3("vskzbel").Value & Chr(11) & Rs3("version").Value & " " & Rs3("absarti").Value & " " & Rs3("vskzkw").Value & Chr(11)
        einheiten(einheitsArrayNummer, 6) = einheiten(einheitsArrayNummer, 6) & Rs3("artikel").Value & " " & Rs3("frist").Value & Chr(11) & Mid(Rs3("artikel"), 3, 1) & Rs3("version") & pruefzifferKorrektursystem(CLng("" & Rs3("kursnr")), CInt("" & Rs3("einheit")), CInt("" & Mid(Rs3("artikel"), 3, 1)), CInt(Rs3("version"))) & Chr(11)
        ElseIf Left(Rs3("artikel").Value, 1) = "M" Then
          einheiten(einheitsArrayNummer, 4) = einheiten(einheitsArrayNummer, 4) & Rs3("artikel").Value & " " & versandDatum & " " & Rs3("vskzbel").Value & Chr(11) & Rs3("version").Value & " " & Rs3("absarti").Value & " " & Rs3("vskzkw").Value & Chr(11)
          Else
            einheiten(einheitsArrayNummer, 5) = einheiten(einheitsArrayNummer, 5) & Rs3("artikel").Value & " " & versandDatum & " " & Rs3("vskzbel").Value & Chr(11) & Rs3("version").Value & " " & Rs3("absarti").Value & " " & Rs3("vskzkw").Value & Chr(11)
      End If
       
      Rs3.MoveNext
   
    Loop
     
    Rs3.Close
         
    Set terminTabelle = tempDoc.Tables(4)
     
   ' Schreiben des Einheiten-Datenfeldes bzw. der Artikel in die Artikeltabelle
   ' des Terminplans
 
    anzEinheitenMitArtikel = 1
       
    If anzZeilen <> 0 Then
     
      aktuelleSeite = 1
     
      For i = 1 To anzZeilen
       
        If Not (einheiten(i, 2) = "" And einheiten(i, 3) = "" And einheiten(i, 4) = "" _
          And einheiten(i, 5) = "" And einheiten(i, 6) = "") Then
           
          ' Wenn nicht letzte Zeile, dann Zeile hinzufügen
          'If i <> anzZeilen And anzEinheitenMitArtikel <> 1 Then
          If Not (anzEinheitenMitArtikel = 1 And aktuelleSeite = 1) Then
         
            terminTabelle.Rows.Add
           
          End If 'i <> anzZeilen
         
          With terminTabelle
           
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=1).Range = einheiten(i, 1)
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=2).Range = einheiten(i, 2)
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=3).Range = einheiten(i, 3)
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=4).Range = einheiten(i, 4)
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=5).Range = einheiten(i, 5)
            .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=6).Range = einheiten(i, 6)
                   
          End With
           
          If tempDoc.ComputeStatistics(wdStatisticPages) > aktuelleSeite Then
             
            terminTabelle.Rows.Last.Delete
            terminTabelle.Rows.Add
            terminTabelle.Rows.Add
             
            If tempDoc.ComputeStatistics(wdStatisticPages) > aktuelleSeite Then
             
              terminTabelle.Rows.Last.Delete
              terminTabelle.Rows.Last.Delete
              terminTabelle.Rows.Last.Delete
              terminTabelle.Rows.Add
              terminTabelle.Rows.Add
              i = i - 1
             
            End If
             
            terminTabelle.Rows.Last.Previous.Cells.Merge
            With terminTabelle.Rows.Last.Previous.Cells(1)
              .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
              .Range.Bold = True
              .Range = "Fortsetzung auf nächster Seite"
            End With
            terminTabelle.Rows.Last.Range.InsertBreak Type:=wdPageBreak
            Set terminTabelle = tempDoc.Tables(tempDoc.Tables.Count)
            aktuelleSeite = aktuelleSeite + 1
            anzEinheitenMitArtikel = -1
             
            With terminTabelle
           
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=1).Range = einheiten(i, 1)
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=2).Range = einheiten(i, 2)
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=3).Range = einheiten(i, 3)
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=4).Range = einheiten(i, 4)
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=5).Range = einheiten(i, 5)
              .Cell(Row:=anzEinheitenMitArtikel + 2, Column:=6).Range = einheiten(i, 6)
                   
            End With
             
          End If
           
          anzEinheitenMitArtikel = anzEinheitenMitArtikel + 1
                   
        End If 'Not (einheiten(i, 2) = "" And einheiten(i, 3) = "" And einheiten(i, 4) = "" _
                And einheiten(i, 5) = "" And einheiten(i, 6) = "")
         
      Next i
     
    End If 'anzZeilen <> 0

 

 

Der Code wurde von einem früheren Mitarbeiter geschrieben, der leider nicht mehr da ist. Und ich kenne mich mit VB nicht wirklich aus, habe allerdings jetzt dieses Problem aufgebrummt bekommen. Habe schon alle Formatvorlagen und ähnliche Dinge unter den verschiedenen Office Versionen verglichen und es muss am Code liegen. Sind in dem Code eventuell Formulierungen enthalten, die Office 2010 nicht versteht, da veraltet? Ich bin echt für jede Hilfe Dankbar. Der Code ist auch nocht länger falls tatsächlich der gesamte Code mit Aufbau zur Datenbank gebraucht wird Poste ich den natürlich nach.

Danke schonmal für jede Hilfe


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA falsche Formatierung nach Office wechsel
18.01.2018 08:21:49 Gast96580
Solved