Anzeige
Archiv - Navigation
1428to1432
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

If Bedingung

If Bedingung
09.06.2015 12:57:13
Lexenlewax
Hallo,
ich habe folgendes Problem:
In Spalte N in Tabelle Process soll nach dem Wert der Zelle B6 aus Tabelle Druck gesucht werden.
Wird der Wert aus B6 gefunden, soll die Zahl links von dem Wert in das Feld B20 in Tabelle Druck geschrieben werden. Wird der Wert nicht gefunden, dann soll stattdessen der Wert aus einer fixen Zelle (A1 in Tabelle Process) in B20 eingetragen und der Wert der Zelle A1 um eins erhöht werden.
Mit Hilfe des Recorders habe ich schon den ersten Teil aufgenommen:
Option Explicit
Private mastrVariable(1 To 4) As String
Private Sub Worksheet_Calculate()
Dim Charge As Integer
Dim Partie As Integer
If mastrVariable(3)  Cells(2, 2).Text Then
Union(Cells(20, 6), Cells(22, 2)).ClearContents
mastrVariable(3) = Cells(2, 2).Text
End If
If mastrVariable(4)  Cells(6, 2).Text Then
Union(Cells(20, 6), Cells(22, 2)).ClearContents
ActiveSheet.Unprotect
Charge = Worksheets("Druck").Range("B6").Value
Sheets("Process").Select
Columns("N:N").Select
Selection.Find(What:=Charge, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Offset(0, -1).Select
Selection.Copy
Sheets("Druck").Select
Range("B20").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B22").Select
mastrVariable(4) = Cells(6, 2).Text
End If
End Sub

Was mir fehlt, ist der zweite Teil:

Wird der Wert nicht gefunden, dann soll stattdessen der Wert aus einer fixen Zelle (A1 in Tabelle Process) in B20 eingetragen und der Wert der Zelle A1 um eins erhöht werden.
Wer kann mir hier weiterhelfen?
Danke und Gruß,
Lexenlewax
PS: Schade, dass ich in meinem Informatikkurs vor 10 Jahren statt VBA Hyperturtle lernen musste....

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Bedingung
09.06.2015 13:03:40
Lexenlewax
Nachtrag,
wenn ich den Code ausführe, dann kommt folgende Fehlermeldung:
Laufzeitfehler '-2147417848 (80010108)'
Die Methode 'Range' für das Objekt' _Worksheet' ist fehlgeschlagen
Bei Debuggen wird folgende Zeile markiert:
Charge = Worksheets("Druck").Range("B6").Value

AW: If Bedingung
09.06.2015 13:10:57
Rudi
dann gibt es kein Blatt "Druck" in der aktiven Mappe.

AW: If Bedingung
09.06.2015 13:49:14
Lexenlewax
Hallo Rudi,
die Tabelle Druck gibt es definitiv. In BA sehe ich sie auch: Tabelle5 (Druck)
Gruß Lexenlewax

AW: If Bedingung
09.06.2015 13:08:24
Rudi
Hallo,
teste mal:
Private Sub Worksheet_Calculate()
Dim Charge As Integer
Dim Partie As Integer
Dim rngF As Range
If mastrVariable(3)  Cells(2, 2).Text Then
Union(Cells(20, 6), Cells(22, 2)).ClearContents
mastrVariable(3) = Cells(2, 2).Text
End If
If mastrVariable(4)  Cells(6, 2).Text Then
Union(Cells(20, 6), Cells(22, 2)).ClearContents
ActiveSheet.Unprotect
Charge = Worksheets("Druck").Range("B6").Value
With Sheets("Process")
Set rngF = Columns("N:N").Find(What:=Charge, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If rngF Is Nothing Then
.Range("A1").Copy
Else
rngF.Offset(, -1).Copy
End If
End With
Sheets("Druck").Activate
Range("B20").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
mastrVariable(4) = Cells(6, 2).Text
End If
End Sub

Gruß
Rudi

Anzeige
AW: If Bedingung
09.06.2015 14:04:38
Lexenlewax
Hallo Rudi,
danke für deine schnelle Hilfe.
Abgesehen davon, dass er immer bei

Charge = Worksheets("Druck").Range("B6").Value
hängenbleibt, ist mir noch etwas aufgefallen:
Anstatt von

.Range("A1").Copy
soll folgendes geschehen: Die größte Zahl aus Spalte M (Tabelle Process) soll ermittelt und um 1 erhöht werden. Diese Zahl soll dann in B20 eingefügt werden.
Danke sehr

AW: If Bedingung
10.06.2015 15:51:10
Lexenlewax
Hallo,
kann hier keiner weiterhelfen?
Ich trau mich auch nicht, in einem anderen Forum nachzufragen, weil ich letztens dann überhaupt keine Hilfe wegen Doppelpost bekommen habe.
Gruß Lexenlewax

Anzeige
AW: If Bedingung
10.06.2015 16:32:40
Rudi
Hallo,
den Fehler kann ich ohne die Mappe nicht nachvollziehen.
Range("B20")=worksheetfunction.max(Sheets("Process").columns(13))+1
Gruß
Rudi

ich mach nicht mehr mit
11.06.2015 20:04:59
Rudi
Hallo,
jetzt ist mir Excel 3x weggeflogen.
Gruß
Rudi

AW: ich mach nicht mehr mit
12.06.2015 11:59:20
Lexenlewax
Was bedeutet das? Abgestürzt? Man kann es ja ohne Makros starten und dann Teile auskommentieren. Aber das weißt du bestimmt.
Gruß Lexenlewax

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige