Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit IF

Probleme mit IF
17.07.2008 13:38:56
Gordon
Moin,
ich habe folgendes Makro was bisher lief:

Private Sub CommandButton1_Click()
Call Tabelle3.Listen
End Sub



Sub Listen()
Dim i, Anzahl As Long
Dim Datei As String
Dim VZ$
Application.DisplayAlerts = False
Application.EnableEvents = False
Datei = Worksheets("Listen erstellen").Range("e6").Value
If Worksheets("Listen erstellen").Range("e6").Value = "" Then
Datei = "Listengenerator2-803 Original.xls"
End If
On Error GoTo err
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Datei, ReadOnly:=True
err:
If err.Number = 1004 Then
MsgBox "Dateiname nicht korrekt oder die Originaldatei befindet sich nicht in diesem Ordner: " & _
ThisWorkbook.Path & "\", vbCritical, "Fehler"
Exit Sub
End If
ThisWorkbook.Sheets("Generator").Range("a1:a2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("a3:a2502").Value
ThisWorkbook.Sheets("Generator").Range("b1:b2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("b3:b2502").Value
ThisWorkbook.Sheets("Generator").Range("c1:c2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("c3:c2502").Value
ThisWorkbook.Sheets("Generator").Range("d1:d2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("d3:d2502").Value
ThisWorkbook.Sheets("Generator").Range("e1:e2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("e3:e2502").Value
ThisWorkbook.Sheets("Generator").Range("j1:j2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("f3:f2502").Value
ThisWorkbook.Sheets("Generator").Range("k1:k2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("g3:g2502").Value
ThisWorkbook.Sheets("Generator").Range("l1:l2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("h3:h2502").Value
ThisWorkbook.Sheets("Generator").Range("m1:m2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("i3:i2502").Value
ThisWorkbook.Sheets("Generator").Range("n1:n2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("j3:j2502").Value
ThisWorkbook.Sheets("Generator").Range("o1:o2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("k3:k2502").Value
ThisWorkbook.Sheets("Generator").Range("p1:p2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("l3:l2502").Value
ThisWorkbook.Sheets("Generator").Range("q1:q2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("m3:m2502").Value
ThisWorkbook.Sheets("Generator").Range("r1:r2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("n3:n2502").Value
ThisWorkbook.Sheets("Generator").Range("s1:s2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("o3:o2502").Value
ActiveWorkbook.Close


Nun habe ich eine, aus meiner Sicht, simple If-Funktion eingebaut:


If ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nr." Or " _
Leistungsbereichs-Nummer" Or "Leistungsbereichsnummer" Or "Leistungsbereichsnr." Then
ThisWorkbook.Sheets("Generator").Range("a1:a2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("a3:a2502").Value
ThisWorkbook.Sheets("Generator").Range("b1:b2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("b3:b2502").Value
ThisWorkbook.Sheets("Generator").Range("c1:c2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("c3:c2502").Value
ThisWorkbook.Sheets("Generator").Range("d1:d2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("d3:d2502").Value
ThisWorkbook.Sheets("Generator").Range("e1:e2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("e3:e2502").Value
ThisWorkbook.Sheets("Generator").Range("j1:j2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("f3:f2502").Value
ThisWorkbook.Sheets("Generator").Range("k1:k2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("g3:g2502").Value
ThisWorkbook.Sheets("Generator").Range("l1:l2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("h3:h2502").Value
ThisWorkbook.Sheets("Generator").Range("m1:m2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("i3:i2502").Value
ThisWorkbook.Sheets("Generator").Range("n1:n2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("j3:j2502").Value
ThisWorkbook.Sheets("Generator").Range("o1:o2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("k3:k2502").Value
ThisWorkbook.Sheets("Generator").Range("p1:p2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("l3:l2502").Value
ThisWorkbook.Sheets("Generator").Range("q1:q2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("m3:m2502").Value
ThisWorkbook.Sheets("Generator").Range("r1:r2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("n3:n2502").Value
ThisWorkbook.Sheets("Generator").Range("s1:s2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("o3:o2502").Value
Else
ThisWorkbook.Sheets("Generator").Range("a1:a2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("a3:a2502").Value
ThisWorkbook.Sheets("Generator").Range("b1:b2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("b3:b2502").Value
ThisWorkbook.Sheets("Generator").Range("c1:c2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("c3:c2502").Value
ThisWorkbook.Sheets("Generator").Range("d1:d2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("d3:d2502").Value
ThisWorkbook.Sheets("Generator").Range("e1:e2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("e3:e2502").Value
ThisWorkbook.Sheets("Generator").Range("j1:j2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("f3:f2502").Value
ThisWorkbook.Sheets("Generator").Range("k1:k2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("g3:g2502").Value
ThisWorkbook.Sheets("Generator").Range("l1:l2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("h3:h2502").Value
ThisWorkbook.Sheets("Generator").Range("m1:m2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("i3:i2502").Value
ThisWorkbook.Sheets("Generator").Range("n1:n2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("j3:j2502").Value
ThisWorkbook.Sheets("Generator").Range("o1:o2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("k3:k2502").Value
ThisWorkbook.Sheets("Generator").Range("q1:q2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("l3:l2502").Value
ThisWorkbook.Sheets("Generator").Range("r1:r2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("m3:m2502").Value
ThisWorkbook.Sheets("Generator").Range("s1:s2500").Value = ActiveWorkbook.Sheets("Tabelle1"). _
Range("n3:n2502").Value
End If
ActiveWorkbook.Close


Leider wird mir nun immer beim Starten des Makro der "Laufzeitfehler '13': Typen unverträglich" angezeigt. Hat jemand zufällig 'ne Ahnung woran das liegen könnte? As der Excel-Hilfe werde ich leider nicht schlau.
Beste Grüße
Gordon

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit IF
17.07.2008 13:59:38
Harald
Hallo Gordon, OR funktioniert etwas anders:
If ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nr." Or " _
Leistungsbereichs-Nummer" Or "Leistungsbereichsnummer" Or "Leistungsbereichsnr." Then
muss heißen
If ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nr." Or " _
ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nummer" Or ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichsnummer" Or "Leistungsbereichsnr." Then
Oder so:
foo = ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value
If _
foo = "Leistungsbereichs-Nr." Or " _
foo = "Leistungsbereichs-Nummer" Or _
foo = "Leistungsbereichsnummer" Or _
foo = "Leistungsbereichsnr." Then
Oder, wenn der Text nur in dem Zusammenhang auftritt
If left( ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value , 16) = "Leistungsbereich" Then
Gruß Harald
P.S.: Evtl ".Value" noch durch ".Text" ersetzen

Anzeige
fehlt noch was
17.07.2008 14:00:00
Harald
If ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nr." Or " _
ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichs-Nummer" Or _ ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichsnummer" Or _ ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value = "Leistungsbereichsnr." Then
Harald

AW: Probleme mit IF
17.07.2008 14:02:00
ede
Hallo,
versuchs mal nach diesem Prinzip:
If Value="Wert1" or Value="Wert2" or Value="Wert3" then..
Für Dein Besipiel geht auch:
If left(ActiveWorkbook.Sheets("Tabelle1").Range("L2").Value,17) = "Leistungsbereichs" then...
Gruss

Anzeige
AW: Probleme mit IF
17.07.2008 14:16:00
UweD
Hallo Gordon
1) Der Wert muß jedesmal verglichen werden...
2) den rest des Codes kannst du wesentlich vereinfachen...
wäre dann so...


Option Explicit
Sub Listen()
    Dim i, Anzahl As Long
    Dim Datei As String
    Dim VZ$
    Dim TB1, TB2 '#########Neu
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Datei = Worksheets("Listen erstellen").Range("e6").Value
    If Worksheets("Listen erstellen").Range("e6").Value = "" Then
        Datei = "Listengenerator2-803 Original.xls"
    End If
    On Error GoTo err
    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Datei, ReadOnly:=True
err:
    If err.Number = 1004 Then
        MsgBox "Dateiname nicht korrekt oder die Originaldatei befindet sich nicht in diesem Ordner: " & _
            ThisWorkbook.Path & "\", vbCritical, "Fehler"
        Exit Sub
    End If
    '######### Neu
    Set TB1 = ThisWorkbook.Sheets("Generator")
    Set TB2 = ActiveWorkbook.Sheets("Tabelle1")
    If TB2.Range("L2").Value = "Leistungsbereichs-Nr." Or _
    TB2.Range("L2").Value = "Leistungsbereichs-Nummer" Or _
        TB2.Range("L2").Value = "Leistungsbereichsnummer" Or _
        TB2.Range("L2").Value = "Leistungsbereichsnr." Then
    TB1.Range("a1:e2500").Value = TB2.Range("a3:e2502").Value 'zusammenhängender Bereich
    TB1.Range("j1:S2500").Value = TB2.Range("f3:o2502").Value
    Else
    'analog dazu
    End If
    ActiveWorkbook.Close
End Sub


Gruß UweD

Anzeige
AW: Probleme mit IF
17.07.2008 14:20:00
Gordon
Hat geklappt..ich danke für die Hilfe...
Gruß
Gordon

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige