Anzeige
Archiv - Navigation
1216to1220
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
ActiveCell.offset Bug, Combobox range
Max
Hallo liebe Com,
Ich arbeite seit geraumer Zeit mit Excel und Vba.
Zurzeit bin ich in einen kleinen Projekt mit dem ich einen "Generator" schreibe.
Hier zuerst einmal ein paar Bilder und Daten.
http://i51.tinypic.com/33cu2kp.jpg
ist die Userform
http://i53.tinypic.com/r73yxe.png
ist die Tabelle
Start (Hier befindet sich der Button für die Userform
die anderen 3 Spalten sind alle gleich siehe Bild.
1 = CB_Pool
2 = BT_Bestaetigen
3 = TB_ID
4 = CB_ID
5 = BT_Anzeigen
6 = TB_Inhalt
7 = TB_Back / BT_Forward
8 = BT_Eintragen
9 = BT_Beenden
Hier mein Code:

Private Sub BT_Anzeigen_Click()
Application.ScreenUpdating = False
Range("A2").Select
Suche:
If CB_ID = ActiveCell.Text Then
TB_ID.Text = ActiveCell.Text
ActiveCell.Offset(0, 1).Select
TB_Inhalt.Text = ActiveCell.Text
ActiveCell.Offset(0, -1).Select
Else
ActiveCell.Offset(1, 0).Select
GoTo Suche
End If
Application.ScreenUpdating = True
End Sub
______________________________________________________________
Private Sub BT_Back_Click()
ActiveCell.Offset(-1, -1).Select
TB_ID.Text = ActiveCell.Text
ActiveCell.Offset(0, 1).Select
TB_Inhalt = ActiveCell.Text
End Sub
______________________________________________________________
Private Sub BT_Beenden_Click()
Unload Me
End Sub
______________________________________________________________
Private Sub BT_Bestaetigen_Click()
Anfang:
Application.ScreenUpdating = False
Neue_Suche:
If CB_Pool = "Absatz 1 Zeile 1" Then
Sheets("Ab.1 Ze.1").Select
Range("A2").Select
Else
If CB_Pool = "Absatz 1 Zeile 2" Then
Sheets("Ab.1 Ze.2").Select
Range("A2").Select
Else
If CB_Pool = "Absatz 1 Zeile 3" Then
Sheets("Ab.1 Ze.3").Select
Range("A2").Select
Else
GoTo Neue_Suche
End If
End If
End If
Anzeige:
TB_ID.Text = ActiveCell.Text
ActiveCell.Offset(0, 1).Select
TB_Inhalt = ActiveCell.Text
Application.ScreenUpdating = True
End Sub
______________________________________________________________
Private Sub BT_Forward_Click()
Range("A2").Select
Suche:
ActiveCell.Offset(1, 0).Activate
ActiveCell.Offset(0, -1).Activate
TB_ID.Text = ActiveCell.Text
ActiveCell.Offset(0, 1).Select
TB_Inhalt = ActiveCell.Text
GoTo Suche
End Sub
______________________________________________________________
Private Sub UserForm_Initialize()
CB_Pool.AddItem ("Absatz 1 Zeile 1")
CB_Pool.AddItem ("Absatz 1 Zeile 2")
CB_Pool.AddItem ("Absatz 1 Zeile 3")
End Sub

1. Hier stehen 3 Werte drinn.
2. Wenn ein Wert ausgesucht wurde prüft dieser Button zuerst welcher Wert ausgewählt ist und geht zu der jeweiligen Tabelle und auf Range("A2")
3. Dies ist eine Textbox in der eine ID angezeigt wird.
4. Dies ist eine Combobox in der alle IDS der jeweiligen Tabelle angezeigt werden sollen.
5. Durch diesen button springt Excel zur gewählten ID.
6. In dieser textbox soll ein text ausgegeben werden (Spalte B).
7. Dies sind Buttons mit denen man per offset durch die Spalte springen kann und sich jeweils alle beiden werte einer Zeile anzeigen lassen kann.
8. Mit diesen Button soll man mal diesen Angezeigten text in Word kopieren
9. Beendet die Userform.
So ich habe nun noch einen Experimentellen Code der nicht funktioniert.
Hier soll in der 2ten Combobox die IDs der jeweiligen Tabelle (des wertes der Combobox ) _
eingetragen werden.

Range("A2").Select
Eintragung:
If ActiveCell = "" Then
Else
CB_ID.AddItem (ActiveCell)
ActiveCell.Offset(1, 0).Select
If CB_Pool = "Absatz 1 Zeile 1" Then
Sheets("Ab.1 Ze.2").Select
GoTo Eintragung
Else
If CB_Pool = "Absatz 1 Zeile 2" Then
GoTo Eintragung
Else
If CB_Pool = "Absatz 1 Zeile 3" Then
GoTo Eintragung
End If
End If
End If
End If

Dieser code soll noch in den BT_Eintragen
So nun meine Fragen:
1. Wie könnte der Experimentelle Code aussehen damit er funktioniert ?
2. Bei den Forward / Back Buttons meckert es mir bei Activecell.offset(wert1, wert2).select rum. (Anfangs ging dieser Befehl doch nach den 10ten versuch nicht mehr ) aber wenn ich diese 2 werte entferne meckert es mir beim nächsten offset rum was hat das für eine Bedeutung ? (Alle Makros sind auf einen anderen computer geschrieben jedoch mit der gleichen Version (excel 2010)
3. Wie kann man einen Text aus einer textbox in Word konvertieren ?
ich hoffe ich habe euch mit diesen ganzen Infos es leichter gemacht mir weiter zu helfen und würde mich über Hilfe eurer seits sehr sehr freuen.
AW: ActiveCell.offset Bug, Combobox range
22.06.2011 21:54:31
Max
Entschuldigt den Doppel post aber mir ist gerade aufgefallen das der offset befehl in keiner meiner Mappen funktioniert egal welches makro ! :/ liegt das daran das ich student testversion habe ?
AW: ActiveCell.offset Bug, Combobox range
22.06.2011 22:02:42
Nepumuk
Hallo,
99,9% von dem was du geschrieben hast trägt nichts zur Aufklärung bei. Was ganau passiert? Fehlermeldung ...?
Gruß
Nepumuk
AW: ActiveCell.offset Bug, Combobox range
22.06.2011 22:48:10
Max
Fehlermeldung bei
ActiveCell.Offset(0, -1).Activate
bei BT_Forward_Click statt
Laufzeitfehler '1004':
Anwendungs oder Objektdefinierter Fehler.
Das ist ein button der bewirkt das von der ActiveCell (anfangs A2
und B2 schon selektiert durch den bestaetigen button) B2 es automatisch eine Spalte runter und deine nach links geht. Sozusagen soll wechselt man dadurch die Zeilennumer um die Werte der nächsten zeile auszulesen.
(falls codes zu umständlich geschrieben sind oder keinen sinn ergeben weist mich bitte darauf hin ich habe vba nie in einen kurs sondern nur per Learning By doing mir selbst angeeignet. )
Anzeige
AW: ActiveCell.offset Bug, Combobox range
23.06.2011 04:47:05
mumpel
Hallo!
Wenn Du in Spalte A bist, dann kannst Du nicht eine Zelle zurück, da ja A die erste Spalte ist.
Wenn Du "ActiveCell.Offset(0, -1).Activate" schreibst, dann geht es eine Zelle nach links, denn "ActiveCell.Offset(Zeile, Spalte).Activate".
Gruß, René
AW: ActiveCell.offset Bug, Combobox range
23.06.2011 04:51:27
mumpel
Und im Übrigen musst Du nicht selektieren.
AW: ActiveCell.offset Bug, Combobox range
23.06.2011 18:08:50
Max
Nein nein das ist schon richtig so =)
Und zwar wenn ich den Bestaetigen Button drücke wählt es Zelle A2 aus geht dann auf Zelle B2 und liest diese auch aus. So wenn ich nun den Forward Button betätige geht er eine Spalte nach unten und eine Zelle nach links also A3 und hier passiert nun genau das selbe es liest A3 aus und geht zu B3 und liest das aus und das geht immer so weiter =) beim Back button ist dies natürlich genau umgekehrt =)
Anzeige
AW: ActiveCell.offset Bug, Combobox range
23.06.2011 22:22:45
mumpel
Und was soll der Unsinn? Lies doch die Zellen direkt aus, ohne sie zu selektieren/aktivieren. Select und Activate sind überfllüssig. Über eine For-Next-Schleife wäre das IMHO besser.
AW: ActiveCell.offset Bug, Combobox range
24.06.2011 01:37:47
Max
Dann sag mir wie und ich mach das ^^
Das Problem ist ich hatte keine Vorkentnisse von VBA das was ich kann und in der letzten Zeit gemacht habe, ist das Produkt aus "Learnin by doing". Ich habe mir weder Tutorials angeschaut noch in irgendeiner weise hab ich mir alle Befehle angeschaut ich hab einfach geschaut was geht und was ne und selbst wenn ich gerade einen Komplizierten weg gehe sowas kann man im Nachhinein (zwar mit bisschen aufwand ) immer noch ändern ! Also sozusagen bin ich ein VBA anfänger da kann man halt nicht alles wissen !
Anzeige
AW: ActiveCell.offset Bug, Combobox range
25.06.2011 12:13:50
mumpel
Bei "VBA gut" sollte man das aber wissen.
Hier mal ein Beispiel mit einer Schleife. Ohne Select und ohne GoTo.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige