Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  [VBA] Letzte Spalte / Letzte Zeile

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   [VBA] Letzte Spalte / Letzte Zeile (10596 mal gelesen)
runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8017
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2009 15:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Tag zusammen,

So, der Leidensdruck ist nun groß genug, mal gucken, wie ihr das löst.
Alles, was ich bislang gefunden oder selber versucht habe, entspricht nicht ganz meinen Wünschen, warum, erkläre ich unten bei den einzelnen Zeilen.

Immer wieder möchte (/muß) man die letzte beschriebene Zeile/Spalte in einem sheet finden.
Die letzte Zeile ist dabei irgendwie einfacher als die letzte Spalte.

Ich gehe jetzt von der Annahme aus, dass man eine "wilde Tabelle" hat, d.h. es kann Ausreißer geben, wie einen Wert in Spalte BB oder Zeile 34000. Und nicht jede Tabelle fängt in Spalte A, Zeile 1 an.
Desweiteren können diverse leere Zellen irgendeine Formatierung enthalten, die möchte ich nicht finden, ich möchte Zellen mit Inhalt finden, Inhalt sind dabei auch Zellen mit Formel, deren Ergebnis dabei zufällig ne "leere" Zelle ausgibt (also sowas wie =Wenn(A1<>"";A1;"") bei leerem A1)
Ich weiß vorher nicht, in welcher Zeile/Spalte der letzte Spalten/Zeilen-Wert steht, daher fallen alle Lösungen, die zeilen/spaltenabhängig sind raus.
Ich möchte nicht per Schleife durchlaufen und den höchsten Wert ermitteln, es soll ein schmucker Einzeiler werden.

Wie gesagt, Zeilen sind kein Problem, da funktionieren

  • Cells.FindPrevious([iv65536]).Row
  • Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row  (wenn letzte Zeile nicht beschrieben ist)
  • Columns(1).Find("*", [A1], , , xlByRows, xlPrevious).Row  (für Spalte A)
  • Cells(Cells.Rows.Count, 1).End(xlUp).Row  (nur eingeblendete Zellen SpalteA)
  • [a65536].End(xlUp).Row  (nur eingeblendete Zellen SpalteA)
u.a. soweit zufriedenstellend.

Mein Problem sind die Spalten:

  • Cells.FindPrevious([iv65536]).column
  • Cells.Find("*", [A1], , , xlByRows, xlPrevious).column
finden leider die letzte beschriebene Spalte der letzten Zeile, nicht die gesamt letzte Spalte.

UsedRange ist (für mich) nicht geeignet, da es z.B. auch auf Formate anspricht,
Außerdem kann ja ein

  • Sheets(1).UsedRange.Column+Sheets(1).UsedRange.Columns.count-1
nicht die Lösung sein, das finde ich jetzt irgendwie nicht schön ;-)

Auch mit SpecialCells(xlCellTypeLastCell) gibt es da (natürlich) keine Besserung bzgl. der Formatierung

  • Cells(1,1).SpecialCells(xlLastCell).Column fällt damit auch raus

Ich brauche also etwas, das
  • nicht zeilenabhängig ist
  • nicht auf Formatierungen anspricht
  • ausgeblendete Zellen mitnimmt
  • Formeln, deren Ergebnis = "" ist berücksichtigt.

Zuviel verlangt? Oder hab ich mich nur irgendwo verrannt und es ist ganz einfach?
Danke für's Lesen, dem Gewinner winken ein Platz in meinem Nachtgebet und natürlich ein Sack voll Unies 

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 10. Okt. 2009 17:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für runkelruebe 10 Unities + Antwort hilfreich

Hallo ruebe ,

sieht nach einer harten Nuss aus... Ohne das zu vertiefen, habe ich willkürlich eine Google-Suche angeworfen.

Dieser Treffer hier - auf Englisch - liest sich äußerst vielversprechend.

HTH?

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2896
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 10. Okt. 2009 17:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für runkelruebe 10 Unities + Antwort hilfreich

als Einzeiler?

Code:
letztespalte = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

erfüllt IMHOIn my humble oppinion (Meiner Meinung nach)

    * nicht zeilenabhängig ist
    * nicht auf Formatierungen anspricht
    * ausgeblendete Zellen mitnimmt
    * Formeln, deren Ergebnis = "" ist berücksichtigt.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8017
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 10. Okt. 2009 17:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Omg,

?Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

Klar, wenn ich oben noch xlByRows drin hab, kann das nicht klappen.

    

@Paulchen den hatte ich nicht gefunden, hab nicht auf englisch gesucht  

Danke euch beiden, ich wußte doch, es ist ganz einfach  
Das Schlimmste daran: ich hab es "richtig" schon mehrfach selbst verwendet, nur heute dieses kleine Wörtchen immer wieder übersehen. Was lernen wir daraus: zukünftig Samstags nicht mehr arbeiten ;-)


------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz