Clever-Excel-Forum

Normale Version: Text bei einem bestimmten wert kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

Ich habe eine Excel mit mehreren Register. In dem Register "Kalkulation" habe ich alle Positionen aufgeführt die ich Standardmäßig brauche.
Jetzt sollen aber nur die Texte und Mengen auf dem Register "Bestelliste" erscheinen welche ich ausgewählt habe, bzw. wo ich eine Menge eingegeben habe.

Ich habe alle Standart-Formeln die mir eingefallen sind probiert und nicht das gewünscht Ergebnis bekommen. Auch bei Google wurde ich nicht fündig.

Hoffe mir kann jemand da weiterhelfen und konnte es verständlich erklären.

Ich sage schon einmal Danke.
Zeig mal Diene Datei.


LG UweD
Hallo Uwe,

danke das du dich dem annehmen möchtest. 

LG Alex
Welche Excelversion kommt zum Einsatz?
version 16.43 Excel für Mac
geht aber auch Excel für Windows
Ok. wollte es zuerst mit =Filter() lösen

So müsste es aber unabhängig von der Version mit VBA klappen


Wichtig: 
- um zu entscheiden, welche Zeilen übernommen werden sollen, prüfe ich, 
 = ob die Zelle in Spalte A = FETT formatiert ist.
 = das kannst du auch machen, wenn dort kein Wert steht, um so Leerzeilen zu erzeugen

 = außerdem, wenn in Spalte D ein Eintrag besteht.


Noch ein Tipp:
 - vermeide verbundene Zellen


in ein Modul
Code:
Option Explicit

Sub Bestelliste_aktualisieren()
    Dim TB1 As Worksheet, TB2 As Worksheet, LR1 As Integer, i As Integer
    Dim Zn As Integer, Z1 As Integer, LC As Integer, Sp As Integer
   
    Set TB1 = Sheets("Kalkulation")
    Set TB2 = Sheets("Bestelliste")
   
    Z1 = 7  'ab Zeile..
    Zn = 7  'erste Zielzeile
    LC = 8  'Aazahl Spalten
    Sp = 4  'Spalte D = Eingabe
   
    'Reset
    TB2.UsedRange.Offset(Zn - 1).ClearContents
   
    With TB1
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
   
        For i = Z1 To LR1
            If .Cells(i, 1).Font.Bold Or .Cells(i, Sp) <> "" Then
                TB2.Cells(Zn, 1).Resize(1, LC).Value = .Cells(i, 1).Resize(1, LC).Value
                Zn = Zn + 1
            End If
        Next
    End With
End Sub


LG UweD
Hallo Uwe,

vielen Dank, ich werde es probieren und Rückmeldung geben.

LG Alex
Hallo Uwe,

hat alles geklappt.

Bin dir sehr Dankbar.

Gruß
Alex