Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Warum funktioniert dieses Makro nicht?
19.02.2007 16:52:00
Manfred
Hallo,
wie im Betreff, der hüpft nicht in den IF-Teil rein, aber in Spalte 5 (F) steht mindestens 1x der wert 41

Sub fkt_bericht_erstellen()
Dim i, fkt_nr, j As Integer
fkt_nr = InputBox("Funktionsnummer?", "Bericht zu Funktionsnummer", 41)
If fkt_nr = 0 Then
MsgBox ("0 ist keine gültige Funktionsnummer")
Exit Sub
End If
j = 54 'ab Zeile 54 einfügen
For i = 6 To ActiveSheet.UsedRange.Rows.Count
If Cells(i, 5).Value = fkt_nr Then
MsgBox "if-teil", vbInformation 'Debug-Info
Range(Cells(i, "A"), Cells(i, "F")).Copy Sheets("Bericht").Range(Cells(j, "A"), Cells(j, "F"))
j = j + 1
End If
Next i
MsgBox i, vbInformation, "Inhalt von I" 'debug info
MsgBox j, vbInformation, "Inhalt von J" 'debug info
End Sub

In der Hoffnung dass mir jemand helfen kann
Grüße

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 17:05:00
Dan
Hi Manfred,
versuch es so:
If Cells(i, 5).Value = VBA.Val(fkt_nr) Then
Gruss Dan
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 17:07:00
Andi
Hi,
das Problem sind die Dateitypen.
Die Zeile
Dim i, fkt_nr, j As Integer
dimensoniert nur j als Integer, die anderen beiden als Variant.
Die Zuwesiung zu einer InputBox macht dann aus fkt_nr einen String. Und nachdem ich annehme, dass die Zellen in Spalte F als Zahl formatiert sind, erkennt er das dann nicht. Dimensioniere fkt_nr als Integer, und es sollte gehen.
Schönen Gruß,
Andi
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 17:39:00
Manfred
Hi,
danke zuerstmal für die beiden lösungen, aber keine davon fuktioniert, er springt immer noch nicht in den if-teil! ich hab testweise auch mal eine zelle als "zahl" definiert, keine änderung des verhaltens...
ich verzweifle noch mit dem makro...
Anzeige
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 18:27:00
IngGi
Hallo Manfred,
ich schließe mich Andi's Meinung an. Daher nochmal die Frage: Folgender Code funktioniert ebenfalls nicht?

Sub fkt_bericht_erstellen()
Dim i As Long
Dim fkt_nr As Long
Dim j As Long
fkt_nr = CLng(InputBox("Funktionsnummer?", "Bericht zu Funktionsnummer", 41))
If fkt_nr = 0 Then
MsgBox ("0 ist keine gültige Funktionsnummer")
Exit Sub
End If
j = 54 'ab Zeile 54 einfügen
For i = 6 To ActiveSheet.UsedRange.Rows.Count
    If Cells(i, 5).Value = fkt_nr Then
    MsgBox "if-teil", vbInformation 'Debug-Info
    Range(Cells(i, "A"), Cells(i, "F")).Copy Sheets("Bericht").Range(Cells(j, "A"), Cells(j, "F"))
    j = j + 1
    End If
Next i
MsgBox i, vbInformation, "Inhalt von I" 'debug info
MsgBox j, vbInformation, "Inhalt von J" 'debug info
End Sub

Gruß Ingolf
Anzeige
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 18:55:31
Manfred
Hi,
nein, es funktioniert einfach nicht, ich hab jetzt testweise eine ganz leere arbeitsmappe (nur mit der zum testen relevanten daten) angelegt, selbst dort funktioniert es nicht.
Grüße
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 19:04:44
Manfred
Hi,
also ich hatte nur einen kleinen Logik-Fehler, die zu suchenden Zahlen stehen in spalte 6... so ein stress.
aber es funktioniert immer noch nicht richtig, er springt in den if-teil, aber dann sagt er beim zellen kopieren "Anwendungs- oder objektdefinierter Fehler". Warum funktioniert das kopieren jetzt auf einmal nicht?
Grüße
AW: Warum funktioniert dieses Makro nicht?
19.02.2007 19:17:00
Erich
Hallo Manfred,
Sheets("Bericht").Range(Cells(j, "A"), Cells(j, "F"))
ist syntaktisch nicht in Ordnung, da müsste stehen
Range(Sheets("Bericht").Cells(j, "A"), Sheets("Bericht").Cells(j, "F"))
Es geht aber auch einfacher, du brauchst nur die erste Zelle des Copy-Zielbereichs anzugeben:
Range(Cells(i, "A"), Cells(i, "F")).Copy Sheets("Bericht").Cells(j, "A")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Problem gelöst? (owT)
22.02.2007 06:20:00
Erich
AW: Problem gelöst? (owT)
22.02.2007 11:23:00
Manfred
jap, alles klar, danke

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige