Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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
Inhaltsverzeichnis

Userform mit .find ueber anderes Blatt ausfuehren

Userform mit .find ueber anderes Blatt ausfuehren
30.07.2015 11:14:26
Markus
Hallo Forum,
habe unter Hilfe eine USERFORM gebaut, die nachfolgendes Makro zum Suchen und Anzeigen von Datensaetzen ueber Textboxen enthaellt. Das Makro laeuft, solange sich die Schaltflaeche zum Aufrufen der USERFORM im Arbeitsblatt befindet, in welchem auch die Datensaetze sind. Nun moechte ich aber eine Art Frontend in einem separatem Arbeitsblatt machen, die alle Makros/Funktionen meiner bescheidenen Datenbank zentral enthaellt.
Tja und nun erhalte ich den beruehmten run-time-error 1004 (activate-methode des range obkejtes kann nicht ausgefuehrt werden) in der Zeile mit "myRange.Activate". Da mein VBA nach wie vor eher bescheiden ist, wollte ich euch fragen, was ich falsch mache in der Ansprache des Arbeitsblattes mit den Datensaetzen. Oder liegt der Fehler woanders?
Vielen Dank vorab fuer euere Unterstuetzung!
Gruesse,
Markus
'
' suchen
'
Private Sub CommandButton2_Click()
Dim WkSh        As Worksheet
Dim lLetzte     As Long
Dim myRange     As Range
Dim strAddress  As String
Dim bolAbbruch  As Boolean
CommandButton3.Enabled = False  ' den Änder-Button sperren
CommandButton4.Enabled = False  ' den Lösch-Button sperren
Set WkSh = Worksheets("Dettagli record")
Sheets("Dettagli record").Protect , UserinterfaceOnly:=True
lLetzte = WkSh.Range("A65536").End(xlUp).Row
If lLetzte  strAddress Then
myRange.Activate
FundZeile = ActiveCell.Row
GoSub Anzeigen
End If
End If
Loop While Not myRange Is Nothing And myRange.Address  strAddress
If Not bolAbbruch Then
MsgBox "Altro record non c'è purtroppo!", _
48, "   Informazione per " & Application.UserName
FundZeile = 0
Else
MsgBox "Non trovato!", _
48, "   Informazione per " & Application.UserName
FundZeile = 0
End If
Else
MsgBox "Non trovato!", _
48, "   Informazione per " & Application.UserName
FundZeile = 0
With TextBox2
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End With
End If
Exit Sub
Anzeigen:
If FundZeile = 0 Then Exit Sub
TextBox1.Value = ActiveCell.Offset(0, 0).Value ' ID record
TextBox2.Value = ActiveCell.Offset(0, -1).Value ' ID cliente
TextBox3.Value = ActiveCell.Offset(0, 1).Value ' Straßenname
TextBox4.Value = ActiveCell.Offset(0, 2).Value ' Postleitzahl
TextBox5.Value = ActiveCell.Offset(0, 3).Value ' Ortsname
TextBox6.Value = ActiveCell.Offset(0, 4).Value ' Ortsname
TextBox7.Value = ActiveCell.Offset(0, 5).Value ' Telefon
TextBox8.Value = ActiveCell.Offset(0, 6).Value ' Telefon
TextBox9.Value = ActiveCell.Offset(0, 7).Value ' Telefon
TextBox10.Value = ActiveCell.Offset(0, 8).Value ' Telefon
TextBox11.Value = ActiveCell.Offset(0, 9).Value ' Telefon
TextBox12.Value = ActiveCell.Offset(0, 10).Value ' Telefon
TextBox13.Value = ActiveCell.Offset(0, 11).Value ' Telefon
Return
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
find-methode muss auf anderes Blatt zugreifen
30.07.2015 14:40:16
Markus
Hallo Forum,
scheinbar habe ich meine Frage nicht gut formuliert und vielleicht auch den Betreff nicht richtig benannt. Es faellt mir schwer zu erkennen wo mein Makro-Problem liegt, daher war ich vielleicht nicht konkret genug...
Ich vermute, dass das Prob darin besteht, dass die find-methode auf ein anderes Arbeitsblatt zurgreifen muss und ich das nicht sauber deklariert habe? Der Laufzeitfehler wird hier ausgeloest:
myRange.Activate ' hier an dieser Stelle
Den restlichen Code hab ich ja schon gepostet.
Vielen Dank vorab fuer eure Unterstuetzung!
Gruss
Markus

Anzeige
AW: find-methode muss auf anderes Blatt zugreifen
30.07.2015 16:43:19
Rudi
Hallo,
verzichte auf Activate
.....
If Not myRange Is Nothing Then
strAddress = myRange.Address
GoSub Anzeigen
Anzeigen:
TextBox1.Value = myRange.Offset(0, 0).Value ' ID record
TextBox2.Value = myRange.Offset(0, -1).Value ' ID cliente
TextBox3.Value = myRange.Offset(0, 1).Value ' Straßenname
TextBox4.Value = myRange.Offset(0, 2).Value ' Postleitzahl
TextBox5.Value = myRange.Offset(0, 3).Value ' Ortsname
TextBox6.Value = myRange.Offset(0, 4).Value ' Ortsname
TextBox7.Value = myRange.Offset(0, 5).Value ' Telefon
TextBox8.Value = myRange.Offset(0, 6).Value ' Telefon
TextBox9.Value = myRange.Offset(0, 7).Value ' Telefon
TextBox10.Value = myRange.Offset(0, 8).Value ' Telefon
TextBox11.Value = myRange.Offset(0, 9).Value ' Telefon
TextBox12.Value = myRange.Offset(0, 10).Value ' Telefon
TextBox13.Value = myRange.Offset(0, 11).Value ' Telefon
....

GoSub solltest du vergessen. Das führt nur zu Spaghetti-Code.
Gruß
Rudi

Anzeige
AW: find-methode muss auf anderes Blatt zugreifen
30.07.2015 17:40:54
Markus
Hallo Rudi,
ich brauche Activate doch fuer ActiveCell.Row zur Definition der Variablen FundZeile?!
Oder nicht?
Wie auch immer, ich habe in der Zwischenzeit eine Kruecke gebaut und wollte den Thread eigentlich schon als "Erledigt" markieren. Wenn Du Lust hast kannst Du mir nochmal und fuer die Nachwelt antworten ...
Hier die Kruecke:
Habe den Code zum Aufrufen der UserForm um eine garstige select-Zeile erweitert ...
Public Sub UserForm1_anzeigen()
Sheets("Dettagli record").Select
UserForm1.Show
End Sub
Und den UserForm-Exit-Code entsprechend dann mit Sheets("Scelta cliente").Select erweitert.
Die Loesung finde ich absolut OK, da so die Datensaetze im Hintergrund zu sehen sind, welche mit der UserForm bearbeitet werden.
Vielen Dank fuer die Unterstuetzung dennoch und Dein Interesse!
Markus
(der x-te, hier gibt es im Forum viele davon, beim evtl. naechsten Thread von mir nenne ich mich irgendwie MarkusX oder so... :)

Anzeige
AW: find-methode muss auf anderes Blatt zugreifen
30.07.2015 23:27:09
Rudi
Hallo,
ich brauche Activate doch fuer ActiveCell.Row zur Definition der Variablen FundZeile?!
Oder nicht?

Nö, du benutzt sie ja auch nicht weiter.
Gruß
Rudi

AW: find-methode muss auf anderes Blatt zugreifen
31.07.2015 08:38:03
Markus
Hallo Rudi,
FundZeile benoetige ich fuer die Negativ-Ereignisse, falls keine Treffer existieren/keine weiteren Treffer existieren.
Oder liesse sich dies auch mit meiner myRange-Variablen loesen?
Gruss
MarkusX

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige