Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro funktioniert nicht bei Formel in Zelle

Forumthread: Makro funktioniert nicht bei Formel in Zelle

Makro funktioniert nicht bei Formel in Zelle
15.07.2006 18:09:05
Fritz
Hallo Excelfreunde,
das nachfolgende Makro kopiert die Tabelle und benennt die Kopie nach der Zahl die in der Zelle "O10" steht.
Allerdings funktioniert das Makro nicht, sofern die in der Zelle "O10" enthaltene Formel keine Zahl liefert, auch beim Wert "". Das Makro sollte in einem solchen Fall jedoch einfach nicht ausgeführt werden?
Wer kann helfen?
Besten Dank im Voraus.
mfg
Fritz
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hier ist das Makro!
15.07.2006 18:10:32
Fritz
Hallo,
hier ist das Makro:

Sub Arbeitsblattkopie()
' kopiert das aktive Sheet und stellt es an den Schluss.
' benennt die Kopie nach dem Eintrag in Zelle "O10"
If Not IsEmpty(Range("O10")) Then
For sh = 1 To Sheets.Count
If Sheets(sh).Name = CStr(Range("O10")) Then
MsgBox "Arbeitsblatt " & Sheets(sh).Name & " existiert schon"
Exit Sub
End If
Next sh
ActiveSheet.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Range("O10").Value
End If
End Sub

Anzeige
AW: Hier ist das Makro!
15.07.2006 18:28:25
Josef
Hallo Fritz!
So läuft's.
Sub Arbeitsblattkopie()
Dim objWs As Worksheet
' kopiert das aktive Sheet und stellt es an den Schluss.
' benennt die Kopie nach dem Eintrag in Zelle "O10"

If Len(Trim$(Range("O10").Text)) <> 0 Or IsNumeric(Range("O10").Text) Then
  For Each objWs In ThisWorkbook.Worksheets
    If objWs.Name = Range("O10").Text Then
      MsgBox "Arbeitsblatt " & objWs.Name & " existiert schon"
      Exit Sub
    End If
  Next
  ActiveSheet.Copy after:=Sheets(Sheets.Count)
  ActiveSheet.Name = Range("O10").Text
End If
End Sub


Gruß Sepp

Anzeige
Korrektur!
15.07.2006 18:30:28
Josef
Hallo Fritz!
War noch eion Fehler drin.
Sub Arbeitsblattkopie()
Dim objWs As Worksheet
' kopiert das aktive Sheet und stellt es an den Schluss.
' benennt die Kopie nach dem Eintrag in Zelle "O10"

If Len(Trim$(Range("O10").Text)) <> 0 And IsNumeric(Range("O10").Text) Then
  For Each objWs In ThisWorkbook.Worksheets
    If objWs.Name = Range("O10").Text Then
      MsgBox "Arbeitsblatt " & objWs.Name & " existiert schon"
      Exit Sub
    End If
  Next
  ActiveSheet.Copy after:=Sheets(Sheets.Count)
  ActiveSheet.Name = Range("O10").Text
End If
End Sub


Gruß Sepp

Anzeige
AW: Korrektur!
15.07.2006 18:44:25
Fritz
Hallo Sepp,
wieder einmal perfekt gelöst. Herzlichen Dank!
Einzigartig Deine Hilfsbereitschaft und die Qualität deiner Beiträge!
Sepp, da ich im Zusammenhang mit dieser Datei noch ein anderes Anliegen habe, würde ich Dich bei dieser Gelegenheit bitten, vielleicht meinen Beitrag von heute früh "Betreff: VBA-Lösung" anzusehen.
Chris hat mir hierzu schon einen Lösungsansatz geliefert, aber ich komm leider damit nicht klar! Bisher war Chris offensichtlich nicht mehr im Forum.
Gruß
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige