Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

If Bedingung
#1
Wo liegt der Fehler, wenn meine IF Bedingung (Filtern) nicht berücksichtigt wird?

Hat hier jemand eine Lösung parat.

Hier mein Problem:

Danke an eurem Interesse.

milli

' Option Explicit
Sub WordTabelleSchreiben()
    Dim appWord As Object
    Dim i As Integer, k As Integer
    Dim tb As Object
    
    ThisWorkbook.Worksheets("Tabelle1").Activate
    excelZeile = 1
    anzahlGefiltert = 0
    anzahlGesamt = 0
    Do
    If Cells(excelZeile, 4).Value = "" Then
    Exit Do
    End If
    If Cells(excelZeile, 4).Value >= 2 And Cells(excelZeile, 4).Value <= 4 Then
     '   Filter Anzahl gefiltert = AnzahlGefiltert + 1
     End If
     excelZeile = excelZeile + 1
     anzahlGesamt = anzahlGesamt + 1
     Loop
    ' Anwendung "Word" starten
    Set appWord = CreateObject("Word.Application")
    
    ' Neues Word-Dokument erstellen
    appWord.Documents.Add
    
    ' Neue Tabelle erstellen und innen wie außen mit Rahmen versehen
    Set tb = appWord.ActiveDocument.Tables.Add _
       (appWord.ActiveDocument.Range(0), 21, 5) ' Erklärung: 21 = 21 Zeilen. 5 = 5 Spalten
    tb.Borders.InsideLineStyle = 1 'wdLineStyleSingle
    tb.Borders.OutsideLineStyle = 1 'wdLineStyleSingle
    
    For i = 1 To 21      ' Erklärung = 21 Zeilen aus Tabelle
        For k = 1 To 5   ' 5 = 5 Spalten aus Tabelle
            ' Tabellenzelle mit Text aus Excel-Zelle füllen
            tb.Cell(i, k).Range.Text = Cells(i, k).Value
        Next k
    Next i
    
    ' Word-Dokument speichern mit Dateiname
    appWord.ActiveDocument.SaveAs "C:\Users\wolli25\Desktop\tabelle55.docx"
    
    ' Anwendung "Word" beenden
    appWord.Quit
    
    End Sub
Antworten Top
#2
Hallöchen,

ich nehme mal an, dass Du diese zeile meinst:
    '   Filter Anzahl gefiltert = AnzahlGefiltert + 1
Was willst Du hier erreichen?
Willst Du nur AnzahlGefiltert hochzählen? Dann eventuell so.
    'Filter
    AnzahlGefiltert = AnzahlGefiltert + 1
Ist Filter ein weiteres Makro? Dann ist das ein etwas seltsamer Aufruf.
Willst Du den Zähler hochsetzen und dann das Makro Filter aufrufen?
Dann musst Du das in zwei Zeilen schreiben.
   AnzahlGefiltert = AnzahlGefiltert + 1
   Filter AnzahlGefiltert
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hi,

wenn es Dir um die Ermittlung der Anzahl der gefilterten Zeilen geht, dann ginge das auch etwas kürzer:


Code:
Sub GefilterteZeilenZählen()
Dim Bereich As Range
Dim i As Integer

Set Bereich = Tabelle1.Range("A1").CurrentRegion
i = Intersect(Bereich.SpecialCells(xlVisible), Bereich.Columns(1)).Count - 1

End Sub


Im obigen Beispiel wird die Anzahl der sichtbaren Zeilen in Spalte A ermittelt und um 1 reduziert (Tabelle hat überschriften).

Gruß
Ich
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste