Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Typen unverträglich


Betrifft: Typen unverträglich von: Johann Esau
Geschrieben am: 22.01.2018 05:35:10

Guten Morgen Liebe Forumgemeinde,

kann mir einer sagen was ich bei diesem Code Falsch mache?
Ich möchte Prüfen ob die Zellen Leer sind bevor der Code das
macht was er machen soll :)

Sub Namen_einlesen(TargetSheet As Worksheet)
If Range("E2:AI99").Value > 0 Then Exit 
Sub 'Typen unverträglich
Dim lngLast As Long
    
With Sheets("Daten")
  lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
  TargetSheet.Range("A2:D99").ClearContents
  .Range("A2:D" & lngLast).Copy
  TargetSheet.Range("A2").PasteSpecial xlPasteValues
  TargetSheet.Range("A2").PasteSpecial xlPasteFormats
  TargetSheet.Range("A2").PasteSpecial xlPasteComments
  Application.CutCopyMode = False
End With

Call mitarbeiterTage(TargetSheet)
End Sub

  

Betrifft: AW: Typen unverträglich von: Hajo_Zi
Geschrieben am: 22.01.2018 05:46:32

nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.

machen in Zeile 3 vor Sub ein '

Du kannst nur eine Zelle prüfen auf >0 

Ansonsten ist der Code in Ordnung.

GrußformelHomepage

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.

Beiträge von Werner, Luc, robert und folgende lese ich nicht.


  

Betrifft: AW: Typen unverträglich von: Werner
Geschrieben am: 22.01.2018 06:01:08

Hallo Johann,

du kannst nicht einen Bereich auf .Value prüfen, wenn dann nur einzelne Zellen. Zum Prüfen ob dein Bereich komplett leer ist:

Public Sub aaa()
If WorksheetFunction.CountA(Range("E2:AI99")) = 0 Then
    MsgBox "Bereich ist leer"
Else
    MsgBox "Bereich ist nicht komplett leer"
End If
End Sub
Gruß Werner


  

Betrifft: AW: Typen unverträglich von: Johann Esau
Geschrieben am: 22.01.2018 06:34:10

Vielen Dank euch beiden!

Top Hilfe Werner, freut mich sehr.
Hab den Code mit deiner Hilfe so zusammengeschnippselt und läuft :)

Option Explicit

Sub Namen_einlesen(TargetSheet As Worksheet)
If WorksheetFunction.CountA(Range("E2:AI99")) = 0 Then
    Dim lngLast As Long
    
With Sheets("Daten")
  lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
  TargetSheet.Range("A2:D99").ClearContents
  .Range("A2:D" & lngLast).Copy
  TargetSheet.Range("A2").PasteSpecial xlPasteValues
  TargetSheet.Range("A2").PasteSpecial xlPasteFormats
  TargetSheet.Range("A2").PasteSpecial xlPasteComments
  Application.CutCopyMode = False
End With

Call mitarbeiterTage(TargetSheet)
    
Else
    Exit Sub
End If


End Sub



  

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T. von: Werner
Geschrieben am: 22.01.2018 06:47:56




  

Betrifft: Kleiner Hinweis von: Robert Werner
Geschrieben am: 22.01.2018 10:09:14

Hallo Johann,

die Zeilen
Else
Exit Sub

kannst Du Dir aber auch noch sparen. Danach ist das Makro sowieso zu Ende, es passiert nichts mehr.

Gruß
Robert