Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1848to1852
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bedingungen

Bedingungen
30.09.2021 09:03:14
Manfred
Servus wehrte Foristen,
ich suche nach einer Lösung für folgende Herausforderung:
Ich nutze ein Makro um Daten aus einem Tabellenblatt ("Eingabe") in andere Blätter zu überführen und möchte dabei, dass die Daten nur unter bestimmten Bedingungen eingefügt werden, bzw. nach dem Einfügen wieder gelöscht werden.
In diesem Fall gibt es zwei Bedingungen. In Spalte F des Ziel Blattes sind Daten von 0 bis zu einem MAX-Wert und von diesem wieder bis 0. Ich möchte, dass die Zellen in Spalte B bis G VOR dem MAX-Wert die kleiner als 0,1 sind, gelöscht werden. Zweitens, dass die Zellen in Spalte B bis G NACH dem MAX-Wert, die kleiner als 80% von diesem sind, ebenfalls gelöscht werden. Hierbei wäre mir wichtig, dass die Verschiebung nach oben stattfindet.
Für jede Anregung und Hilfestellung wäre ich sehr dankbar!
Mein Code für die Übertragung sieht wie folgt aus:

Sub Test()
With ThisWorkbook
.Worksheets("Vorlage").Copy After:=.Sheets(.Sheets.Count)
ActiveSheet.Name = Range("Eingabe!B5")
End With
asi = ActiveSheet.Index
nasi = Sheets(asi).Name
Range("Eingabe!B16:G55000").Copy
Sheets(asi).Select
Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingungen
30.09.2021 17:07:00
Yal
Hallo Manfred,
wenn man die Sache "per Hand" machen müsste, würde ich wie folgt vorgehen:
1_ eine Hilfespalte für die Position der MAX-Werte. Mit der Formel =WENN(A1=MAX($A$1:$A$100);ZEILE();0)
2_ eine Hilfespalte für "ist Zeile kleiner als Zeile-Max und ist zahl < 0,1 "
3_ eine Hilfespalte für "ist Zeile grösser als Zeile-Max und ist Zahl < (0,8*MAX) "
(idealerweise 2 und 3 in eine Spalte zusammenbringen)
(Nicht getestet und grundsätzlich immer vorher eine sicherungskopie machen)

Sub Bereich_BG_proZeile_löschen()
Dim Max
Dim MaxPos
Dim Z
With ThisWorkbook
Max = WorksheetFunction.Max(.Range("F1:F55000")) 'Max-wert ermittelt
MaxPos = WorksheetFunction.Match(Max, .Range("F1:F55000"), 0) 'Zeile vom Max-Wert ermitteln
'Zellen in Spalte B bis G NACH dem Max-Wert, die kleiner als 80% vom Max
For Z = .Range("B99999").End(xlUp).Row To MaxPos Step -1
If .Cells(Z, "B") 
VG
Yal
Anzeige
AW: Bedingungen
01.10.2021 10:27:28
Manfred
Guten Morgen,
ersteinmal vielen Dank für deine Mühe, Yal.
Ich habe den Code eben getestet, allerdings auf Excel 2016. Hier erscheint die Meldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht!" Liegt das an der Versionierung, oder doch am Code?
Beste Grüße
AW: Bedingungen
01.10.2021 10:35:33
Yal
Hallo Manfred,
wenn Du mir sagst, wo diese Fehler auftaucht, könnte ich vielleicht nachvollziehen warum.
Dank dran, dass ich deine Datei nicht sehe.
VG
Yal
AW: Bedingungen
01.10.2021 11:02:47
GerdL
Moin Manfred,
ergänze bitte noch das Blatt, statt "Tabelle1" halt mit deinen Blattregisternamen.
With ThisWorkbook.Worksheets("Tabelle1")
Gruß Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige