zugriff auf Funktionen von allen Tabellen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: zugriff auf Funktionen von allen Tabellen
von: Tobias
Geschrieben am: 05.11.2003 11:52:58

hi @all!

Kann man von allen Worksheets aus auf eine "zentrale" Funktion/Sub zugreifen?
Der Hintergrund:
ich will einen Wert aus einem sheet in ein anderes sheet kopieren, muss dort aber erst einen namen suchen.

mein bisheriger quellcode:


Private Sub daten_kopieren()
Dim i As Integer, name As String
Dim z As Integer, s As Integer, e As Integer
Dim zneu As Integer, sneu As Integer
  
  z = zeile("Kundenart")
  s = spalte("Kundenart")
  e = ende
  z = z + 1
  MsgBox prompt:=z & ", " & s
  For i = z To e
    MsgBox prompt:="i: " & i
    If Cells(i, s).Value = "" Then
      name = Cells(i - 1, s + 1).Value
      Cells(i, s + 1).Select
      'Range(Cells(i, s + 1), Cells(i, s + 5), Cells(i, s + 7)).Select
      Selection.Copy
      Sheets("sheet1").Select
      zneu = zeile(name)
      sneu = spalte(name)
      ActiveSheet.Cells(zneu, sneu).Select
      Selection.PasteSpecial Paste:=xlPasteValues
      Sheets("Direktgeschäft nach OO").Select
    End If
  Next
End Sub


leider sucht er immer bei (zneu und sneu) in dem sheet aus der die Zelle kopiert wird.

thx 4 ur answers!
Bild


Betrifft: AW: zugriff auf Funktionen von allen Tabellen
von: Russi
Geschrieben am: 05.11.2003 13:03:19

Hi Tobias!

Wenn Du die

Sub als PUBLIC statt als Private deklarierst (siehe Zeile 1!), kannst Du auch von anderen Prozeduren bzw. Worksheets darauf zugreifen:

Sub Andere_Funktion_in_anderem_Worksheet()
  Call worksheet("Tabellenname").daten_kopieren
End Sub


Viele Grüße
Russi


Bild


Betrifft: klappt nicht
von: Tobias
Geschrieben am: 05.11.2003 13:36:40

hi!

also, dass problem ist:
in dem sheet0 rufe ich die

Sub "daten_kopieren" auf. diese soll nun in dem sheet1 die zeile (zneu) und die spalte (sneu) (das per 

Function erreicht wird) in dem ein bestimmter name steht "merken". 
kann ich die functios global in dem project schreiben, so dass ich von jedem worksheet darauf zugreifen kann?
hört sich vielleicht kompliziert an...
hier der quellcode der functions:

Function zeile(was As String) As Integer
Dim i As Integer, j As Integer
  For i = 1 To 50                                  'Zeile absuchen
    For j = 1 To 50                                'Spalte absuchen
      If Cells(i, j).Value = was Then              'Inhalt Zelle mit ges. Wort vergleichen
         zeile = Cells(i, j).Row                   'Zeile merken
      End If
    Next
  Next
  
End Function



Function spalte(was As String) As Integer
Dim i As Integer, j As Integer
  For i = 1 To 50                                  'Zeile absuchen
    For j = 1 To 50                                'Spalte absuchen
      If Cells(i, j).Value = was Then              'Inhalt Zelle mit ges. Wort vergleichen
         spalte = Cells(i, j).Column               'Spalte merken
      End If
    Next
  Next
  
End Function



Function ende() As Integer
    ende = Range("k500").End(xlUp).Row             'letzte Zeile merken
End Function


thx 4 ur answers!


Bild


Betrifft: AW: klappt nicht
von: Russi
Geschrieben am: 05.11.2003 14:17:00

Hallo Tobias!

Sorry, hat etwas länger gedauert.

Füge die Funktionen in DieseArbeitsmappe ein und deklariere außer-/oberhalb der Funktionen ggf. deine Variablen mit

Option Explicit
Public Zeile As Long
Public Spalte As Long

Dann müsste es gehen. Sorgen macht mir aber, dass Deine Funktionsbezeichnungen (Zeile und Spalte) bereits von Excel als Tabellenfuktion vergeben sind. Ich weiß nicht, ob das hier zu Problemem führen kann (der große Crack bin ich nun auch nicht) aber generell sollte man sowas vermeiden. Nur als Tip am Rande.

Viele Grüße!

Russi


Bild

Beiträge aus den Excel-Beispielen zum Thema " zugriff auf Funktionen von allen Tabellen"