Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

(WENN(UND))-Formel mit VBA

Forumthread: (WENN(UND))-Formel mit VBA

(WENN(UND))-Formel mit VBA
09.01.2014 16:12:40
Thomas
Hallo zusammen,
ich habe tausende "(wenn(und))-Formeln in dem Bereich I7:NJ101.
Lässt sich das mit VBA schöner lösen?
Vielen Dank im Voraus für eure Mühe!
https://www.herber.de/bbs/user/88744.xlsm
Schöne Grüße
Thomas

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: (WENN(UND))-Formel mit VBA
09.01.2014 16:32:43
Rudi
Hallo,
VBA ist i.d.R. langsamer als Formeln.
etwas schneller dürfte das berechnet werden:
=WENN(I$5&gt=$C7;WENN(I$5&lt=$D7;$F7;"");"")
Gruß
Rudi

AW: (WENN(UND))-Formel mit VBA
09.01.2014 16:34:40
Thomas
Hallo Rudi,
danke für deine Antwort.
Es wäre dennoch eine VBA-Lösung hilfreicher für mich, da ich später auch in dem Bereich Zellen löschen und einfügen möchte. Wird dann mit den Formeln problematisch.
Grüße
Thomas

Anzeige
AW: (WENN(UND))-Formel mit VBA
10.01.2014 15:27:51
fcs
Hallo Thomas,
eine VBA-Lösung kann wie folgt aussehen.
Die Aktualisierung der Daten ab Zelle I7 erfolgt dann auf Anforderung des Anwenders; z.B nach Ändern/Ergänzen von Daten in den Spalten C, D oder F
Hierzu im Tabellenblatt eine Schaltfläche aus den Formularsteuerelementen einfügen und dieser das Makro zuweisen.
Gruß
Franz
'Makro in einem allgemeinen Modul der Datei
Sub AktualisierenTerminuebersicht()
' Formeln Makro
Dim wks As Worksheet
Dim Zeile_L As Long, Spalte_L As Long
Dim Zeile_1 As Long, Spalte_1 As Long
Dim Zelle As Range, StatusCalc As Long
Set wks = ActiveWorkbook.Worksheets("Terminübersicht") ' - ggf. anpassen
'Makrobremsen lösen
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
End With
With wks
With .Range("I7")       '1. Zelle mit Formel zur Berechnung von B/U/"" - ggf. anpassen
Zeile_1 = .Row
Spalte_1 = .Column
End With
'Letzte Datenspalte
Spalte_L = .Cells.Find(What:="*", after:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByColumns, Searchdirection:=xlPrevious).Column
'Letzte Datenzeile
Zeile_L = .Cells.Find(What:="*", after:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, Searchdirection:=xlPrevious).Row
If Zeile_L >= Zeile_1 And Spalte_L >= Spalte_1 Then
'Altdaten löschen
With .Range(.Cells(Zeile_1, Spalte_1), .Cells(Zeile_L, Spalte_L))
.ClearContents
End With
End If
'Letzte Datenspalte
Spalte_L = .Cells.Find(What:="*", after:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByColumns, Searchdirection:=xlPrevious).Column
'Letzte Datenzeile
Zeile_L = .Cells.Find(What:="*", after:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, Searchdirection:=xlPrevious).Row
If Zeile_L >= Zeile_1 And Spalte_L >= Spalte_1 Then
With .Range(.Cells(Zeile_1, Spalte_1), .Cells(Zeile_L, Spalte_L))
'Formel einfügen
'=WENN(I$5>=$C7;WENN(I$5=RC3,IF(R5C

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige