VisualBasic Zellinhalt in Variable lesen

Knufu

Lieutenant
Registriert
Dez. 2011
Beiträge
592
Guten Morgen,

ich bin derzeit mir in VBA kleine Routinen zusammenzubauen. Da ich dies autodidaktisch tue, hänge ich nun etwas..

Folgendes Szenario:
1. per Button wird eine neue Zeile erzeugt und der Inhalt der darüberliegenden nach unten kopiert.
2. Es wird ein Blatt "Vorlage" kopiert und der Nutzer nach einem Namen für dieses Blatt gefragt - das Blatt wird dementsprechend umbenannt.
3. Der eingegebene Name wird in die erste Spalte/Zelle der neuen Zeile geschrieben (über eine Routine wird die Zelle abgefragt wo sich der Button vom ersten Schritt befindet und ein entsprechendes Offset für diese Zelle)
---- soweit so gut, alles funktioniert

3. nun soll per Button eine Zeile gelöscht werden - auch das funktioniert noch.
4. Das entsprechende Arbeitsblatt mit dem Namen aus der ersten Zelle der Zeile soll nun ebenfalls gelöscht werden -- und hier komme ich nicht weiter. Wie kann ich den String aus Zelle X in eine Variable schreiben um damit per Suchroutine (oder kann ich das Blat direkt ansprechen) das zugeh. Blatt zu suchen und zu löschen?

Falls noch Codeschnipsel von mir benötigt werden gebt mal Rauchzeichen.


Danke
 
Moin,

wie wäre es hiermit...

Sub x()
Application.DisplayAlerts = False 'sorgt dafür das Excel nicht fragt ob z.b. die Tabelle wirklich gelöscht werden soll
Worksheets(Range("A1").Text).Delete
Application.DisplayAlerts = True
End Sub

Gruß
Zeruel
 
Danke erstmal.
Aber wie bekomme ich den Zellinhalt erstmal in eine Variable?

Eintragen funktioniert bei mir so
Code:
   ' Zelle des gedrückten Buttons finden
    LRange = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Address

   ' Namen Abfrage und Eintragen in Zelle
    NewName = InputBox("Geben Sie einen Tabellenblattnamen ein")
    Range(LRange).Offset(ZeileOffset, SpalteOffset - 20) = NewName

Wie komme ich jetzt aber von der Zelle des gedrückten Buttons (LRANGE) zum Zellinhalt?
Code:
   ' Zelle des gedrückten Buttons finden
    LRange = ActiveSheet.Buttons(Application.Caller).TopLeftCell.Address
   
   ' Zeile löschen
    Range(LRange).Offset(ZeileOffset, SpalteOffset).EntireRow.Delete
    Name = ActiveSheet.Range(LRange).Offset(ZeileOffset, SpalteOffset - 20)
die Variable <Name> ist leider immer mehr leer!
 
die Variable "Name" ist leer, weil du die Zeile vorher löschst...

Dein Code:...

' Zeile löschen
Range(LRange).Offset(ZeileOffset, SpalteOffset).EntireRow.Delete
Name = ActiveSheet.Range(LRange).Offset(ZeileOffset, SpalteOffset - 20)

So müsste es sein....

' Zeile löschen
Name = ActiveSheet.Range(LRange).Offset(ZeileOffset, SpalteOffset - 20)
Range(LRange).Offset(ZeileOffset, SpalteOffset).EntireRow.Delete
 
Danke, das wars!!!

Manchmal sieht man echt den Wald vor lauter Bäumen nicht. ;)
 
Zurück
Oben