tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
28
ZUGRIFFE
25736
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JumpnJack JumpnJack ist offline Grünschnabel
    Registriert seit
    May 2004
    Beiträge
    4
    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
     

  2. #2
    lohokla lohokla ist offline Mitglied Gold
    Registriert seit
    May 2003
    Beiträge
    161
    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".
     

  3. #3
    JumpnJack JumpnJack ist offline Grünschnabel
    Registriert seit
    May 2004
    Beiträge
    4
    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.
     

  4. #4
    lohokla lohokla ist offline Mitglied Gold
    Registriert seit
    May 2003
    Beiträge
    161
    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?
     

  5. #5
    JumpnJack JumpnJack ist offline Grünschnabel
    Registriert seit
    May 2004
    Beiträge
    4
    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?
     

  6. #6
    lohokla lohokla ist offline Mitglied Gold
    Registriert seit
    May 2003
    Beiträge
    161
    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.
    Angehängte Dateien Angehängte Dateien
     

  7. #7
    JumpnJack JumpnJack ist offline Grünschnabel
    Registriert seit
    May 2004
    Beiträge
    4
    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.
    Angehängte Dateien Angehängte Dateien
     

  8. #8
    lohokla lohokla ist offline Mitglied Gold
    Registriert seit
    May 2003
    Beiträge
    161
    Ich hab mal probiert das mit Objektvariablen zu lösen - bei mir geht es, wie ich mir das vorgestellt habe
    Angehängte Dateien Angehängte Dateien
     

  9. #9
    MattisGod MattisGod ist offline Mitglied Bronze
    Registriert seit
    Sep 2006
    Beiträge
    27
    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
     

  10. #10
    Nirraven Nirraven ist offline Mitglied Brokat
    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"

  11. #11
    MattisGod MattisGod ist offline Mitglied Bronze
    Registriert seit
    Sep 2006
    Beiträge
    27
    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.
     

  12. #12
    MattisGod MattisGod ist offline Mitglied Bronze
    Registriert seit
    Sep 2006
    Beiträge
    27
    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 ?
     

  13. #13
    Nirraven Nirraven ist offline Mitglied Brokat
    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"

  14. #14
    MattisGod MattisGod ist offline Mitglied Bronze
    Registriert seit
    Sep 2006
    Beiträge
    27
    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!
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken VBA Exel - Inhalt von Zellen in Variable schreiben-26245attachment.jpg  
     

  15. #15
    Nirraven Nirraven ist offline Mitglied Brokat
    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

  1. schreiben in eine Exel tabelle
    Von prinzessin4444 im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 04.12.08, 08:54
  2. Excel VBA: Inhalt von verbundenen Zellen löschen
    Von WiZdooM im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 08.09.08, 17:06
  3. Zellen Inhalt per Mausklick abfragen Excel
    Von obi-j im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 10.03.06, 11:12
  4. Exel: Inhalt Zeile nach Spalte
    Von Howie im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 15.12.04, 15:12
  5. EXEL: Zellen durch Eingabe automatisch formatieren
    Von andyK im Forum Office-Anwendungen
    Antworten: 3
    Letzter Beitrag: 02.03.04, 15:54