ERLEDIGT
NEIN
NEIN
ANTWORTEN
28
28
ZUGRIFFE
25736
25736
EMPFEHLEN
-
Hallo Leute.
Also ich bin ein totaler Neuling in Sachen VB oder VBA. Mein Problem ist, ich möchte Werte in Zellen auslesen, diese dann mit verschiedenen Abfragen prüfen und dann etwas damit anstellen.
Das Prob ist halt das ich mit der Hilfe von VBA nicht wirklich zurecht komme und eine anständige Funktionsreferenz ala php vermisse ich auch. Also weiß ich schon überhaupt nicht wie ich eine Zelle auselesen kann. Hat da einer einen Tipp wie ich das am besten bewerkstellig, oder wo es sowas wie eine sinnvolle Funktionsreferenz gibt?
Wäre echt klase wenn ihr mir helfen könntet.
Liebe Grüße
JumpinJack
-
Code :
1 2
dim ZellenInhalt as String ZellenInhalt = range("A1").value
Befehlreferenz find ich auch grade für Einsteiger nicht besonders nützlich und im Internet hab ich auch noch keine guten Sites gefunden
Was manchmal ganz nützlich sein ist "Makro aufzeichnen".
-
Hallo Danke dir für die Antwort. War schon ziemlich nahe an der Lösung wie ich sehe. Es ist auch mal schön zu sehen wie man die Variablen perfekt ausweißt. Also vielen Dank dafür.
Leider stehe ich vor einem unerklärlichen Prob. Ich möchte eine Referenz schreiben und diese soll aus Variablen zusammengesetzt. Das sieht wie folgt aus:
ActiveCell.FormulaR1C1 = "='" & VAR_TABELLE & "'!" & VAR_ZELLE
Laut meinem Gedankengang sollte das dann richtig raus kommen. Nämlich:
='TabelleX'!B3
Was aber tatsächlich raus kommt ist dies:
='TabelleX'!'B3'
Sprich zwei einzelne Anführungszeichen zu viel. Wie kommt sowas und wie kann ich das verhindern.
Gruß JumpinJack
btw: Ja das mit dem Makro aufzeichnen funktioniert echt klasse. Aber leider nurt soweit wie man alles anklicken kann. Wenn ich eine wert in eine Variable schreiben möchte ist das praktische Tool am ende, oder ich hab das noch nicht ganz begriffen.
-
Ich denk mal der Fehler entsteht, wenn du VAR_TABELLE und VAR_ZELLE einen Wert zuweist. Aber so wie du das vorhast zu machen sieht es sowieso ziemlich umständlich aus - da gibt es bestimmt eine leichtere Methode. Was möchtest du denn genau machen?
-
Das entsteht aus einer Buchhaltung herraus. Jedes WorkSheet ist die Buchhaltung für ein anderes Jahr für nur einen Klient oder Mandant.
Das Makro erzeugt eine neue Tabelle mit dem Namen "Aktuelles Jahr" (2004) und übernimmt von Tabelle 2003 die Daten. Ich möchte nicht die Werte von den Zellen kopieren sondern die referenz hinterlegen damit, sollte ich was ändern, auch alles automatisch mitgeändert wird.
Hm...das ist echt schwer zu erklären. Fest steht das ich diese Referenzen benötige. Mal ein Beispiel für meine Zuweisungen
Code :1 2 3 4 5 6 7 8 9 10
COUNTER2 = COUNTER2 + 1 ' COUNTER2 = Schleifendurchlauf und Zeilendef NEW_GEGENSTAND_ZELLE = "B" & COUNTER2 ' Spalte B bleibt, Reihe wird durch Schleifendurchlaufszahl gesetzt ' Ich denke die Zusammensetzung ist einigermassen klar. ' NEW_GEGENSTAND_ZELLE ist die Referenz Sheets(TO_SHEET).Select Range(NEW_GEGENSTAND_ZELLE).Select I_NEW_GEGENSTAND_ZELLE = "='" & AKT_SHEET & "'!" & NEW_GEGENSTAND_ZELLE ActiveCell.FormulaR1C1 = I_NEW_GEGENSTAND_ZELLE
Ich kanns schlecht erklären. Ich hoffe du siehst wo ich hin will. Was kann ich denn falsch machen wenn ich 2 Variablen an einander hängen möchte. Oder einen festen String mit einer Variable verkette?
-
Wenn ich das Problem richtig verstanden habe, dann kann man das Problem sogar ohne vba lösen
Also du hast ein Blatt mit den Daten vom letzten Jahr (in meinen Beispiel heißt es DB_2003). Die Daten die auf diesen Blatt stehen willst du auf ein neues Blatt (DB_2004) übertragen, willst aber auch, dass automatisch Änderungen, die du auf den alten Blatt machst aufs Neue übertragen werden?!
Ich hab mal ein Beispiel (ist ohne vba) angehängt, wie ich mir vorstelle wie das aussieht.
-
OK. Finde ich echt klasse das du dir die Mühe machst. Also das Beispiel habe ich mir mal angesehen, funktioniert aber nicht wirklich. Jedenfalls wenn ich in DB_2003 was ändere wird das nicht im anderen Tabellenblatt übernommen.
Ich denke ich benötige doch VBA.
Ich hänge mal mein Bspl an.
Gucks dir bitte mal an. Gehe bitte auf Tabellenbaltt 2004. Dort siehst du Referenzen auf 2003. Nun kannst du mit dem kleinen Makro was ich geschrieben habe ein neues Datenblatt erzeugen mit dem Namen 2005. Dort wird die entsprechende Formatierung der Spaltenbreite und den inhalt der Kopftabelle erzeugt. Nun soll das Makro hingehen und checken:
Ist in H3 (1. Zeile Abgänge) ein wert enthalten > ja dann überspringe diese Zeile und kopiere diese nicht in 2005
Wenn nein checke ob in H3 (1. Zeile unter Spalte Gegenstand) ein wert drin steht. Wenn nein ist das ende der tabelle erreicht.
Wenn aber in H3 nichts steht aber in B3 schon dann schreibe die Referenz in das eben erzeugte Tabellenblatt 2005 unter B3. ...und diverse andere Werte. Aber das ist dann nur noch fleissarbeit.
Bei H3 und B3 ist die 3 nur exemplarisch und dient nur als Anfang. Tatsächlich sollte das eher X heißen da diese Abfrage in Schleife gesetzt werden soll. Es soll ja bis zum ende der Tabelle jeder Eintrag geprüft werden.
Ich hoffe das ist einigermassen Verständlich. Und ich hoffe das Makro ist im Dokumnet enthalten.
-
Ich hab mal probiert das mit Objektvariablen zu lösen - bei mir geht es, wie ich mir das vorgestellt habe
-
Also ich hab das jetzt bei mir auch einmal gemacht - die variable bekomm ich hin - nur möchte ich jetzt mit der Variablen auch etwas machen und zwar, ich habe in der zelle G36 einen Tabellennamen diesen habe ich jetzt in die Variable übergeben nun möchte ich diese Variable in ein makro eingebunden eingesetzt - wo es anstatt des Tabellennames steht - wenn ich jetzt das marko ausführe dann kommt folgende Fehlermeldung "Index auserhalb des gültigen Bereichs" weis einer was ich da machen muss - also ich möchte aus einer 2. tabelle deren name in der Variablen steht daten in die 1. tabelle kopieren.
Danke im Voraus
-
22.09.06 11:44 #10
- Registriert seit
- Nov 2003
- Ort
- Tecklenburg (NRW)
- Beiträge
- 258
Code :1 2 3 4
Sub test() bla = Range("A1") Worksheets(bla).Activate End Sub
Sollte eigentlich funktionieren.
P.S.: Ja, ich benutze nicht aussagekräftige Variablennamen. Bevor das wieder jemand bemängelt...
"Weeks of programming saves days of planning"
-
Ja das ist nicht schlecht - aber das geht nur wenn sich die daten auf einem Tabellenblatt befinden - ich möchte aber eine kompelt neue tabelle öffnen - also ich habe in der Zeile "G45" den Pfad stehn - und nun möchte ich mit einem druck auf einen commandbutton die tabelle öffnen.
-
Ich habe noch ein prob

also ich habe in excel ein "SelectFile Class" objekt erstellt - damit kann man ja eine Datei suchen und dann steht der komplette pfad in einem Textfeld - wie kann ich jetzt zb diesen pfad in dem textfeld in eine zeile - damit ich wie im letzen beitrag beschrieben diese tabelle öffnen kann ?
ich weis echt nicht mehr weiter - ich hoffe einer von euch hab eine idee !
Also das mit den Variablen geht bei mir irgendwie nicht - wenn ich eine Zelle einer variablen zuweise und dann diese variable in eine funktion einsetzte dann geht das nicht - wenn ich aber nur die zelle einsetze ohne alles dann geht es - ist doch igendwie komisch - oder ?
-
25.09.06 11:45 #13
- Registriert seit
- Nov 2003
- Ort
- Tecklenburg (NRW)
- Beiträge
- 258
Klapp trotzdem
Code :1 2 3 4 5 6
Sub test() bla = Range("A1") Workbooks.Open (bla) End Sub"Weeks of programming saves days of planning"
-
ok du hast recht - thx, ich hab da immer "" gemacht - das war warscheinlich der fehler

eine frage hätte ich da aber noch an dich - und zwar - wenn ich jetzt den pfad haben will indem ich auch einen button drücke und dann die datei auswähle - weist du wie das geht?
ich pack mal en screen von der form mit rein!
-
25.09.06 16:37 #15
- Registriert seit
- Nov 2003
- Ort
- Tecklenburg (NRW)
- Beiträge
- 258
Am unkompliziertesten ist wohl
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
Public Function GetFolderName() Dim oFileDialog As FileDialog Set oFileDialog = Application.FileDialog(msoFileDialogFolderPicker) With oFileDialog .Title = "Wählen Sie bitte den gewünschten Ordner aus!" .ButtonName = "auswählen" .Show For Each vrtselecteditem In .SelectedItems GetFolderName = vrtselecteditem & "\" Next End With End Function
"Weeks of programming saves days of planning"
Ähnliche Themen
-
schreiben in eine Exel tabelle
Von prinzessin4444 im Forum C/C++Antworten: 0Letzter Beitrag: 04.12.08, 08:54 -
Excel VBA: Inhalt von verbundenen Zellen löschen
Von WiZdooM im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 08.09.08, 17:06 -
Zellen Inhalt per Mausklick abfragen Excel
Von obi-j im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 10.03.06, 11:12 -
Exel: Inhalt Zeile nach Spalte
Von Howie im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 15.12.04, 15:12 -
EXEL: Zellen durch Eingabe automatisch formatieren
Von andyK im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 02.03.04, 15:54





Zitieren
Login





