Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Typen unverträglich bei Target.Column und Kopieren

Typen unverträglich bei Target.Column und Kopieren
22.03.2018 11:45:20
Andre
Hallo zusammen,
ich habe einen Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim OutPut As Integer
If Target.Column = 8 Then
ThisRow = Target.Row
If Target.Value = "DV" Then
OutPut = MsgBox("For unsymmetrical double-welded joints: please combine 2  _
times of the corresponding single-weld joints with s/2", vbInformation, "unsymmetrical double-welded joints")
ElseIf Target.Value = "DY" Then
OutPut = MsgBox("For unsymmetrical double-welded joints: please combine 2  _
times of the corresponding single-weld joints with s/2", vbInformation, "unsymmetrical double-welded joints")
ElseIf Target.Value = "DHV" Then
OutPut = MsgBox("For unsymmetrical double-welded joints: please combine 2  _
times of the corresponding single-weld joints with s/2", vbInformation, "unsymmetrical double-welded joints")
ElseIf Target.Value = "DHY" Then
OutPut = MsgBox("For unsymmetrical double-welded joints: please combine 2  _
times of the corresponding single-weld joints with s/2", vbInformation, "unsymmetrical double-welded joints")
ElseIf Target.Value = "DU" Then
OutPut = MsgBox("For unsymmetrical double-welded joints: please combine 2  _
times of the corresponding single-weld joints with s/2", vbInformation, "unsymmetrical double-welded joints")
Else
Exit Sub
End If
End If
Columns("A:M").EntireColumn.AutoFit
Columns("AN:AP").EntireColumn.AutoFit
End Sub
Hier wird immer geprüft, ob sich eben die entsprechenden Values befinden und wenn ja, kommt eine Messagebox.
Mein Problem: Wenn ich jetzt hunderte von Werten in die Spalte einfügen möchte, dann bekomme ich den Fehler: Laufzeitfehler '13': Typen unverträglich.
Ich vermute, dass liegt eben daran, dass es nun mehrere Target.Rows gibt. Hat jmd. einen Vorschlag, wie ich das verhindern kann?
Besten Dank im Voraus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 12:10:53
Daniel
Hi
nein, Target.Row ist nicht das Problem, auch mehreren Zellen im Target gibt es immer nur ein Target.Row
die Ursache ist Target.Value = "DW"
hast du mehrere Zellen bearbeitet, ergibt Target.Value ein zweidimensionales Array, welches die Werte aller selektierten Zellen enthält.
und so ein Array kannst du nicht mit einem Einzelwert über "=" vergleichen.
mit If Target.CountLarge = 1 kannst du abfragen, ob du eine oder mehrere Zellen bearbeitest.
die Frage ist, was passieren soll, wenn du mehrere Zellen markiert hast?
soll dann einfach nichts passieren oder möchtest du für jede Zelle diese Abfrage haben?
Gruß Daniel
Anzeige
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 12:21:40
Andre
Hi Daniel,
da liegt also das Problem, vielen Dank :D
also wenn mehrere Zeilen in die Spalte hereinkopiert warden, ware es besser wenn einfach nichts passiert.
Soll ich dann If Target.CountLarge = 1 then exit sub machen?
Besten Dank schonmal
VG
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 12:55:15
Andre
Immernoch offen - freue mich über eine kurze Erklärung. Lieben Dank schonmal.
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 13:38:59
Daniel
Hi
probiers doch aus.
wobei du das makro dann abbrechen willst, wenn mehr als eine Zelle bearbeitet wird.
Gruß Daniel
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 13:39:51
mmat
Hallo Andre,
du möchtest doch den Inhalt der Zellen überprüfen, also macht es keinen Sinn, die Überprüfung abzubrechen, wenn mal mehr als eine Zelle in Target drin ist.
Du könntest die Routine so schreiben:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim OutPut As Integer, s As String, c As Range
For Each c In Target
If Target.Column = 8 Then
s = c.Value + ","
If InStr("DV,DY,DHV,DHY,DU,", s) > 0 Then MsgBox "unsymmetrical double-welded joints at  _
row " + CStr(c.Row)
End If
Next
Columns("A:M").EntireColumn.AutoFit
Columns("AN:AP").EntireColumn.AutoFit
End Sub
Eine andere Idee wäre die fehlerhaften Zellen einfach mittels bedingter Formatierung hervorzuheben, dann muß der Anwender nicht jedesmal in der Messagebox auf OK drücken.
Anzeige
AW: Typen unverträglich bei Target.Column und Kopi
22.03.2018 13:42:45
mmat
Oh, da ist noch ein Fehler, es muß heissen
 If c.Column = 8 Then

AW
22.03.2018 15:32:22
Andre
Hallo mmat,
hallo Daniel,
vielen Dank für eure Unterstützung. Ich habe nun mit: Target.CountLarge > 1 den sub verlassen. Eigentlich ist das Tool dazu gedacht, einzeln die Zeilen zu füllen. Bei hereinkopieren sollen daher keine Meldungen kommen. Besten Dank für Eure Unterstützung.
VG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige