For Next Schleife mit integrierter If Schleife
10.02.2015 11:53:47
Jano
ich schreibe zurzeit meine Diplomarbeit und muss für diese ein Programm zum Führen eines Nachweises schreiben. Zur Programmierung habe ich mich für VBA entschieden. Bis jetzt habe ich auch alles, mit meinem wenigen VBA-Wissen, so weit lösen können, doch nun komme ich einfach nicht weiter und bitte euch um Anregungen und Lösungsvorschläge.
Eine kurze Beschreibung:
Ich habe zwei Tabellen, (Blatt1) und (Blatt4). Auf Blatt 1 ist meine Haupttabelle erstellt worden. Diese Haupttabelle umfasst mehrere Bedingungen. Diese Bedingungen habe ich jeweils untereinander in der jeweiligen Spalte angelegt. Unter verschiedenen Kombinationen dieser Bedingungen erhalte ich einen Wert. Diese Werte gehen von Spalte 11 bis 520.
Jetzt möchte ich je nach Kombination dieser Bedingungen einen bestimmten Wert haben.
Der Benutzer dieses Programms setzt diese Kombination fest. Diese werden auf Blatt 4 festgelegt.
Da dachte ich mir, dass in diesem Fall eine for Next Schleife aufgrund der Spaltenanzahl und eine If Schleife aufgrund der zu vergleichenden Bedingungen, die der Benutzer ausgewählt hat mit den festgelegten Bedingungen.
Falls die Kombination übereinstimmt, soll der Wert auf dem Blatt4 in einer bestimmten Zelle eingetragen werden.
Ich habe eine Prozedur geschrieben und diese mit einem Button verknüpft.
Diese wird auch durchgeführt, allerdings wird der Wert nicht in der vorgegebenen Zelle angezeigt.
Hierbei ist zu beachten, dass die Bedingungen Texte darstellen und ein Wert ausgegeben werden soll.
Vielleicht liegt der Fehler dort?!
Ich habe exakt darauf geachtet, dass die vom Benutzer angegebenen Bedingungen (Blatt4) mit den Vorgegebenen (Blatt1) übereinstimmen. Daran dürfte es also nicht liegen!?
Ich würde mich über eine Antwort und Hilfestellungen sehr freuen, da ich wirklich nicht mehr weiter weiß!!
Ein Upload ist aufgrund der Größe der Datei leider nicht möglich!
Ich bitte um Verständis!!:)
Viele Grüße
Jano
Hier nun der Code:
Sub Bestätigen()
Dim i As Integer
For i = 11 To 520
If Sheets("Blatt1").Cells(2, i) = Sheets("Blatt4").Cells(18, 4) And Sheets("Blatt1").Cells(6, i) _
= Sheets("Blatt4").Cells(22, 4) _
And Sheets("Blatt1").Cells(7, i) = Sheets("Blatt4").Cells(23, 4) And Sheets("Blatt1").Cells(9, _
i) = Sheets("Blatt4").Cells(24, 4) _
And Sheets("Blatt1").Cells(10, i) = Sheets("Blatt4").Cells(25, 4) And Sheets("Blatt1").Cells(11, _
i) = Sheets("Blatt4").Cells(27, 4) _
And Sheets("Blatt1").Cells(12, i) = Sheets("Blatt4").Cells(30, 4) Then
Sheets("Blatt4").Cells(37, 3).Value = Sheets("Blatt1").Cells(13, i).Value
End If
Next
Worksheets("Blatt4").Activate
End Sub
/i>