Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellenbezug als Variable

Zellenbezug als Variable
01.12.2007 15:32:00
Jochen
Hallo zusammen,
ich habe folgendes Problem, ich bekomme täglich mehrere Datensätze in einer txt. datei das kann mal nur einer sein, aber auch mal 50.
Mit folgendem Makro las ich mir die Anzahl der belegten Zeilen feststellen:
Dim AnzahlZeilen As Integer
Sheets("eingabe").Activate
AnzahlZeilen = Application.WorksheetFunction.CountA(Range("A1:A1820"))
jetzt möchte ich die Variable AnzahlZeilen in die Folgenden Befehl einbauen (Hier nur einer als Beispiel), Anstatt des Ranges("A1:A1812")
Weil ich aus der txt Datei noch Leerstellen und Sonstiges entfernen muß und danach in ein Tabelle übertragen, mit einer festen Zellenangabe braucht das aber ziemlich lang, wenn nur ein Datensatz eingetragen wird.
Range("A1:A1812").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="(", FieldInfo:=Array(1, 1)
Ich hab es schon mit Cells und Variablen versucht, aber nichts hat funktioniert. Lösung mit Erklärung wäre Super, ich möchte nämlich auch ganz gern kapieren was ich mach.
Danke schon im voraus
Jochen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenbezug als Variable
01.12.2007 16:07:41
Daniel
Hi
beispielsweise so

AnzahlZeilen = Application.WorksheetFunction.CountA(Range("A1:A1820"))
Range("A1:A" & Anzahlzeilen).select


oder


AnzahlZeilen = Application.WorksheetFunction.CountA(Range("A1:A1820"))
Range("A1").resize(Anzahlzeilen,1).select


oder ohne die Variable:


Range(cells(1,1), Cells(65536,1).end(xlup).select


Gruß, Daniel

@Daniel. Warum SELECT? o.T.
01.12.2007 16:34:32
Josef
Gruß Sepp

Anzeige
AW: @Daniel. Warum SELECT? o.T.
01.12.2007 16:46:37
Daniel
Hi
weil ich seine Frage beantworten und keinen generellen Excel-Grundkurs geben wollte.
Gruß, Daniel

AW: @Daniel. Warum SELECT? o.T.
01.12.2007 16:53:00
Josef
Hallo Daniel,
das hat nicht mit eiem Grundkurs zu tun. Aber nach meiner (sicher unerheblichen) Meinung, sollte man einem Anfänger vor allem beibringen, das auf Select und Activate zu 99% verzichtet werden soll/muss.
Gruß Sepp

AW: @Daniel. Warum SELECT? o.T.
01.12.2007 17:43:59
Daniel
Hi
ja, dem stimme ich im Prinzip schon zu, aber dann sollte man dem Anfänger auch erkären, warum und wieso und nicht nur irgendwelche Code-Brocken ohne einen Kommentar hinwerfen.
Sowas hilft dem Verständnis auch nicht viel weiter.
Vorallem, wenn der Code noch ein paar zusätzliche Neuerungen wie die WITH-klammer enthält, bei denen man davon ausgehen muß, daß sie dem Fragesteller u.U. nicht bekannt sind, wären ein paar erklärende Worte nicht schlecht.
Gruß, Daniel
Gruß, Daniel

Anzeige
AW: @Daniel. Warum SELECT? o.T.
01.12.2007 18:14:00
Jochen
Also erst mal ein dickes Danke an euch beide, mein Problem konnte ich lösen.
Aus eurem hin und her hat sich jetzt aber eine weitere Frage ergeben. Warum kein Select und Activate ?
Könnt Ihr ein Buch für Anfänger empfehlen, eins in dem die Befehle wirklich erklärt werden ....
Gruß Jochen

AW: @Daniel. Warum SELECT? o.T.
01.12.2007 18:23:20
Daniel
Hi
bei büchern weiß ich nicht bescheid, aber diese Seite ist recht informativ:
http://www.online-excel.de/excel/singsel_vba.php?f=78
oder wenn du einfach hier auf den LINK "Offline-Excel/VBA-Buch" klickst, kommst du auf ne WIKI-BOOKS-Seite zum Thema.
Gruß, Daniel

Anzeige
AW: @Daniel. Warum SELECT? o.T.
01.12.2007 18:30:22
Jens
Hallo Jochen
Select und Activate sollte man meiden, da diese Befehle den Code unübersichtlich machen und fast immer überflüssig sind. Ein Beispiel:
-leere Tabelle öffnen
-in Zelle B2 "Test" schreiben und
-Zelle B2 mit blauem Hintergrund formatieren.
Der Makrorecorder zeichnet folgendes auf:

Sub Makro1()
Range("B2").Select
ActiveCell.FormulaR1C1 = "12345"
Range("B2").Select
With Selection.Interior
.ColorIndex = 41
.Pattern = xlSolid
End With
End Sub


Kürzer sieht das dann so aus:


Sub Makro1()
With Range("B2")
.Value = 12345
.Interior.ColorIndex = 41
End With
End Sub


Mit dem Buch kann ich Dir allerdings nicht weiterhelfen.
Meiner Meinung nach macht "learning by doing" sowieso am meisten Spaß.
Und natürlich immer fleißig in diesem Forum (und anderen) vorbeischauen und sich nicht scheuen, zu fragen.
Gruß aus dem Sauerland
Jens

Anzeige
AW: Zellenbezug als Variable
01.12.2007 16:33:00
Josef
Hallo Jochen,
With Sheets("eingabe")
    
    .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row).TextToColumns _
        Destination:=.Range("A1"), _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=True, _
        OtherChar:="(", _
        FieldInfo:=Array(1, 1)
End With

Gruß Sepp

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige