none
Worksheet zur Laufzeit erstellen und überwachen RRS feed

  • Frage

  • Hallo zusammen,

    in einer Excel-Anwendung möchte ich zur Laufzeit ein neues Tabellenblatt erstellen, dieses umbenennen und dann die Eingaben in diesem Tabellenblatt überwachen. Wenn der Nutzer auf eine beliebige Zelle in dem neu erstellten Tabellenblatt klickt soll ein Ereignis ausgelöst werden.

    Welchen Code benötige ich?

    Vielen Dank im voraus.

    Emil

    Sonntag, 22. Januar 2012 17:04

Antworten

  • Hallo Emil,
    Erstellen eines neuen Sheet funktioniert auf dieser Weise:
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim new_sh As Object
    
            new_sh = Globals.ThisWorkbook.Worksheets.Add()
            new_sh.Name = "neuer Name"
    
        End Sub
    
    End Class
    

     
    Man kann dann einfach dieses Ereignis des ThisWorkbook Objektes verwenden:
    Public Class ThisWorkbook
    
        Private Sub ThisWorkbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Microsoft.Office.Interop.Excel.Range) Handles Me.SheetSelectionChange
            If Sh.Name = "neuer Name" Then
                MsgBox("Zelle " & Target.Address & "wurde ausgewaehlt")
            End If
        End Sub
    
        '...
    
    End Class
    

     
    Viele Grüße,
    Bogdan

    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.
    Montag, 23. Januar 2012 08:36

Alle Antworten

  • Hallo Emil,
    Erstellen eines neuen Sheet funktioniert auf dieser Weise:
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim new_sh As Object
    
            new_sh = Globals.ThisWorkbook.Worksheets.Add()
            new_sh.Name = "neuer Name"
    
        End Sub
    
    End Class
    

     
    Man kann dann einfach dieses Ereignis des ThisWorkbook Objektes verwenden:
    Public Class ThisWorkbook
    
        Private Sub ThisWorkbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Microsoft.Office.Interop.Excel.Range) Handles Me.SheetSelectionChange
            If Sh.Name = "neuer Name" Then
                MsgBox("Zelle " & Target.Address & "wurde ausgewaehlt")
            End If
        End Sub
    
        '...
    
    End Class
    

     
    Viele Grüße,
    Bogdan

    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.
    Montag, 23. Januar 2012 08:36
  • Hallo Bogdan,

    ich habe deinen Code getestet. Es funktioniert einwandfrei.

    Vielen Dank!

    Emil

    Montag, 23. Januar 2012 10:11
  • Hallo Bogdan,

     

    wenn ich jetzt weiter schreibe:

    new_sh.range("z1").value = "test"

    dann funktioniert das, allerdings habe ich keine intellisense für das range-objekt.

    Gibt es eine Möglichkeit die Intellisense zu nutzen?

    Viele Grüße

    Emil

     

    Montag, 23. Januar 2012 16:08