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:
940
Rating: Antwort:
 Nein
Thema:
VBA falsche Formatierung nach Office wechsel
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: 

http://www.directupload.net/file/d/4971/eapfbzsi_jpg.htm

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:

http://www.directupload.net/file/d/4971/6h27zeik_png.htm


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