Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellbereich auf Werte prüfen
#1
Hallo Forum,

mit folgendem Code,
prüfe ich ob in Tabelle1 im Bereich B9:E9 Werte stehen, falls nicht kommte eine MsgBox.
Steht aber in einem der Zellen ein Wert, wird das Macro weiter ausgeführt,
der Bereich B9:E9 aus Tabelle1 wird kopiert und in Tabelle2 Bereich S7:V7 eingefügt.

Mein Problem ist nun folgendes,
in dem Bereich B9:E9 von Tabelle1 stehen Formeln die die Zellen aus Werten anderer Tabellen füllen.
Hier  scheintert mein Macro, es kopiert auch den Bereich wenn keine sichtbaren Werte drin stehen?
In meiner Testmappe wo ich den Code erstellt habe funktioniert es da in den Zellen keine Formeln stehen.

Meine Frage:
wie müsste ich den Code anpassen das es auch bei Formenl funktioniert, bzw. gibt es einen besseren Lösungsweg?

Code:
Sub ACopy04()
'-----------------------------------------------------------------------------------------
'Prüft den Bereich B9:E9 ob Leer
'Wenn Range Leer kommt MsgBox ansonsten wir das Macro weiter ausgeführt.
'-----------------------------------------------------------------------------------------
If Application.WorksheetFunction.CountA(Worksheets("Tabelle1").Range("B9:E9")) = 0 Then
    MsgBox "es macht keinen sinn einen leeren Bereich zu kopieren!"
Else
' Kopiert den Range in Tabelle1
    Range("B9:E9").Select
    Selection.Copy
'Fügt die Werte in Tabelle2 Range S7:V7 ein
    Sheets("Tabelle2").Select
    Range("S7:V7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("AB5").Select
End If
End Sub

Besten Dank im Voraus
omron2003
Antworten Top
#2
Hallo,

so wie es aussieht, ist es doch egal, ob die Zellen etwas anzeigen oder nicht. Also einfach
Code:
Sub ACopy04()
    Sheets("Tabelle2").Range("S7:V7").Value = Sheets("Tabelle1").Range("B9:E9").Value
End Sub
und gut ist.

Gruß Uwe
Antworten Top
#3
Hallo,

das ist nicht das was ich benötige!

vieleicht verdeutlicht die Demo Mappe mein Anliegen.

der Code von Tabelle1 nach Tabelle2 hier funktioniert die Prüfung.
der gleiche Code von Tabelle3 (mit Formeln "SVERWEIS von Tabelle4") nach Tabelle2 hier funktioniert die Prüfung nicht

Besten Dank im Voraus
omron2003


Angehängte Dateien
.xlsm   DemoOmron_31.03.2022.xlsm (Größe: 24,05 KB / Downloads: 7)
Antworten Top
#4
Hallo,

versuche es einmal so:

Code:
Sub CopyA01()

If Application.WorksheetFunction.CountA(Worksheets("Tabelle3").Application.WorksheetFunction.Sum(Range("B3:D3"))) = 0 Then
usw.


Grüße

Norbert
Antworten Top
#5
Hallo,

leider funktioniert es hiermit auch nicht....

Code:
Sub CopyA01()

If Application.WorksheetFunction.CountA(Worksheets("Tabelle3").Application.WorksheetFunction.Sum(Range("B3:D3"))) = 0 Then
   MsgBox " es macht keinen Sinn einen leeren Bereich zu kopieren!"
Else
  Range("B3:D3").Select
   Selection.Copy
  Sheets("Tabelle2").Select
  Range("B3:D3").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Range("A1").Select
End If
End Sub

Gruß
omron2003
Antworten Top
#6
Hi,

einfach so:

Code:
Sub Copy01()

If Application.WorksheetFunction.CountIf(Worksheets("Tabelle1").Range("B3:D3"), "") = 3 Then
   MsgBox " es macht keinen Sinn einen leeren Bereich zu kopieren!"
Else
  Range("B3:D3").Copy
  Sheets("Tabelle2").Range("B3:D3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End If
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#7
Hallo,

habs noch mal getestet, - so hat es funktioniert:

Code:
Sub CopyA01()

If Application.WorksheetFunction.Sum(Range("B3:D3")) = 0 Then
   MsgBox " es macht keinen Sinn einen leeren Bereich zu kopieren!"
Else
  Range("B3:D3").Select
   Selection.Copy
  Sheets("Tabelle2").Select
  Range("B3:D3").Select
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Range("A1").Select
End If
Application.CutCopyMode = False
End Sub

Grüße

Norbert
Antworten Top
#8
Hallo,

Super, jetzt funktioniert es so wie ich es mir vorgestellt habe.

Nochmals besten Dank an alle für die schnelle Hilfe
LG omron2003
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste