Anzeige
Archiv - Navigation
1732to1736
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

Tabellenbereich verändern

Tabellenbereich verändern
08.01.2020 07:38:05
Zopf
Hallo zusammen,
ich versuche gerade diesen Code:
If IsNumeric([B3].Value) Then
ActiveSheet.ListObjects("Tabelle1").Resize Range("$A$2:$E$3")
End If
in eine Schleife umzuwandeln, damit sie für die komplette Tabelle drüberläuft.
Allerdings tu ich mich hier sehr schwer, da ich wirklich absoluter VBA-Laie bin.
Die Tabelle erstreckt sich von A3 bis E92 und soll immer dann den Bereich verändern, wenn in Spalte B ein numerischer Wert auftaucht. Die Tabelle soll dann in ihrer letzten Zeile den letzten numerischen Eintrag der Spalte haben. Es wäre super wenn mir irgendjemand eine Hilfestellung geben könnte!
Vielen Dank und lieben Gruß,
Zopf

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenbereich verändern
08.01.2020 08:09:46
Luschi
Hallo Zopf,
also ich verstehe nicht, was Du eigentlich vorhast. 1 Tabelle, und insbesondere die intelligenten Tabellen sollten pro Spalte nur einen bestimmten Datentyp enthalten (nur Zahlen, nur Text, nur Datum, nur Formeln usw. aber nix Gemischtes.
Den Datenbereich erhält man so: ActiveSheet.ListObjects("Tabelle1").DataBodyRange
Gruß von Luschi
aus klein-Paris
AW: Tabellenbereich verändern
08.01.2020 08:48:59
Zopf
Halllo Luschi,
so einfach ist es leider nicht. Die Tabelle ist komplett mit Formeln vorausgefüllt dh.h von A3 bis E92. Die Werte für Spalte B kommen aus einem anderen Reiter und wenn in diesem Reiter kein Wert eingegeben ist, erscheint ein #NV ansonsten die Zahl. Das ist von mir so gewollt, weil man ebenfalls 0 als Wert eingeben kann. Deshalb suche ich nach dem letzten numerischen Wert in Spalte B, die anderen Spalten haben konstant Zahlen.
Hintergrund ist, dass diese Tabelle die Basis für ein Diagramm ist und die Legende sich automatisch daran anpassen soll, ob ein numerischer Wert gegeben ist. Falls jemand eine andere Lösung bzw. eine Idee für einen anderen Aufbau hat, ist das natürlich auch sehr willkommen.
Vielen Dank,
Zopf
Anzeige
letzter numerischer Wert in Spalte B
08.01.2020 09:29:21
WF
Hi,
folgende Arrayformel:
{=INDEX(B:B;MAX(WENN(ISTZAHL(B1:B99);ZEILE(X1:X99))))*1}
Wie man das für VBA umfummelt: keine Ahnung.
WF
AW: letzter numerischer Wert in Spalte B
08.01.2020 09:42:21
Zopf
Hallo WF,
danke für deine Mühe und deine Formel, funktioniert prima.
Nur leider bringt mir das für meine aktuelle Aufgabenstellung nichts bzw- wüsste ich ebenfalls nicht wie ich das in VBA anwende.
Trotzdem Danke!
LG Zopf
AW: letzter numerischer Wert in Spalte B
08.01.2020 09:48:43
Luschi
Hallo Zopf,
wenn Du eine Demodatei bereitstellst, greife ich noch mal in die Tastatur und mache es Vba-fähig.
Gruß von Luschi
aus klein-Paris
AW: letzter numerischer Wert in Spalte B
08.01.2020 10:40:42
Zopf
Hallo Luschi,
anbei die Demo-Datei:
https://www.herber.de/bbs/user/134239.xlsm
Danke schonmal für die Mühe!
Gruß Zopf
Anzeige
AW: letzter numerischer Wert in Spalte B
08.01.2020 11:28:27
hary
Moin
Dann brauchst du nicht die letzte Zahl, sondern die Zeilennummer.
So wird die Tabelle erweitert/angepasst.
Dim i As Long
i = Evaluate("=MATCH(0,B:B,-1)")
With Worksheets("Tabellen").ListObjects("Tabelle1")
.Resize Range(.Range.Resize(i - 1).Address)
End With

gruss hary
AW: letzter numerischer Wert in Spalte B
08.01.2020 13:03:42
Zopf
Hallo Hary,
super vielen Dank, das funktioniert!
Allerdings sucht deine Vergleich-Funktion ja nach 0, es ist aber auch möglich 0 als Zahlenwert einzugeben und danach z.B. eine 8. Der Tabellenbereich geht dann aber nur bis zur 0, die 8 bleibt unbeachtet. Hast du da noch eine Idee?
Vielen Dank!
Zopf
Anzeige
AW:mit Evaluate
08.01.2020 09:51:24
hary
Moin
MsgBox Evaluate("=INDEX(B:B,MAX(if(ISNUMBER(B1:B99),ROW(X1:X99))))*1")

gruss hary
AW: letzter numerischer Wert in Spalte B
08.01.2020 10:54:32
Daniel
Hi
der einfachste Weg:
schreib die Formel in eine Zelle und lies in VBA einfach diesen Zellwert aus.
Gruß Daniel
AW: Tabellenbereich verändern
08.01.2020 11:38:21
Daniel
Hi
dim Zelle As Range
dim Zeile as Long
for each Zelle In Range("B:B").SpecialCells(xlcelltypeformulas, 1)
Zeile = Zelle.Row
Next
ActiveSheet.ListObjects("Tabelle1").Resize Range("$A$2:$E$" & Zeile)
Gruß Daniel
AW: Tabellenbereich verändern
08.01.2020 13:06:27
Zopf
Hallo Daniel,
Danke auch für deine Lösung, das funktioniert prima!
Genauso hab ichs mir vorgestellt!
Vielen Dank und schönen Tag noch!
Zopf
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige