Wie kann man bei vba eine zelle auslesen? Mit Cells (...,...) oder nicht.

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Das was im Makro links steht, wird definiert durch das was rechts vom Gleichheitszeichen steht. In Deinem Kommentar zu MartinPii wird also die Variable Verkaufspreis definiert durch Cells(3, 4). alos wird Cells ausgelesen.

Cells(4, 5).value  = Verkaufspreis würde die Zelle E4 mit dem Wert von Verkaufspreis füllen.

Du kannst aber auch statt Cells Range("E4") schreiben. Mit Cells kannst Du innerhalb einer Range nochmals eine bestimmte Zelle ansprechen. ZB in Range("A1:A5").Cells(2) sprichst Du A2 an. (Muss die genaue Syntax mit Anführungszeichen wo und wieviele auch immer erst wieder lernen. Könnte auch ("A1":"A5") heissen oder "A1", "A5", eher nicht.). Musst Du in der Hilfe nachlesen oder selber rumprobieren. (gibt noch weitere Möglichkeiten, da kann man sich richtig verkünsteln).

Du kannst in eine Zelle einen Wert reinschreiben (oder auslesen) mit Cells.value

Du kannst aber auch eine Formel behandeln mit cells(..).formula und wenn die Formel auf deutsch drinsteht, mit Cells(..).FormulaLocal. Cells(..). Formula alleine gibt Dir die englische Formel wieder, also zB =SUM(...) anstatt =SUMME(...).

Wenn Du in einer deutschen Version eine Formel setzen willst, musst Du also unbedingt .FormulaLocal verwenden. Einen Wert setzt Du mit .value (ich glaube, das ist sogar die Vorgabe, wenn man value weglässt, muttu ausprobieren)


Oubyi, UserMod Light  21.03.2011, 09:54

DH!   

0
Iamiam  04.04.2011, 16:22
@Oubyi, UserMod Light

schaff Dir eine abgelegte, billige CD-Rom mit xl97 oder 2000 Professional (ich glaube Student hat auch VBA mit drin, bin ich aber nicht sicher) an. Die meisten Befehle waren da schon drauf und ich denke, gerade für Syntaxprobleme reichts.

0
Escada06 
Beitragsersteller
 20.03.2011, 21:46

ich kann nicht selber rumprobieren, weil ich kein excel habe, deswegen ist es ja auch so schwierig :( Muss quasi blind programmieren.  Aber danke

0
Iamiam  20.03.2011, 21:49
@Escada06

Geh in ein Internet-Cafe, da gibts viele, die xl haben, auch billige (halbe Stunde 50 Ct). Nur konzentriere Dich auf das Problem, sonst wirds doch teuer!

0
Escada06 
Beitragsersteller
 20.03.2011, 21:52
@Iamiam

Ich wohne am Aaa... der Welt, wir haben sowas nicht :(

0

so zb:

Worksheets("Sheet1").Activate
Range(Cells(1, 1), Cells(5, 3)).befehl

erst zeile dann spalte, also erst Zahl dann Buchstabe Cells(5,3) = C5


Escada06 
Beitragsersteller
 20.03.2011, 21:16

Danke! Hab das jetzt aber immer noch nicht verstanden, wann jetzt ausgelesen und wann reingeschreibselt wird ^^ Was heißt z.B Verkaufspreis=Cells(3,4).Value. Lese ich das dann raus? Wofür brauche ich Range?

0
MartinPii  20.03.2011, 21:24
@Escada06

zuerst muss verkaufspreis als variable definiert werden, also zb

dim verkaufspreis as string

in deiner zeile wird festgelegt das die Variable Verkaufspreis den Wert aus Zelle D3 bekommt

Range brauchst du für Zellen von bis, also zb Zelle A1 bis D3

Excel hat eine richtig gute Hilfedatei, schau da mal ruhig rein!

0
Escada06 
Beitragsersteller
 20.03.2011, 21:32
@MartinPii

ja das weiß ich, dass man das deklarieren muss. trotzdem danke ^^ Ah ok, also wirds rausgelesen. und umgekehrt wäre es dann....also Cells(3,4).Value=Verkaufspreis? Ok Range brauch ich dann nicht, gut... Danke!!! Wofür brauch ich denn jetzt Value? oder ist das einfach nur so da, weils Wert heißt?^^

0
MartinPii  20.03.2011, 21:43
@Escada06

ja value heisst wert, du könntest ja auch die schriftart, oder die farbe usw. von der zelle haben wollen, das value heisst du willst nur den "zahlen" wert der zelle

wegen cells und range schau mal bitte nochmal in die hilfe, da gibts schon noch unterschiede, mit range gehts auch

0