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

variablen druch schleife anlegen

variablen druch schleife anlegen
10.03.2004 10:35:39
Thomas S.
Hallo zusammen,
ich habe folgendes Problem:
ich möchte aus zwei sheets die Werte miteinander vergleichen, wobei eines davon als Stand heute und das andere als neu dienen soll. Dh. die werte die im heutigen stand noch nicht drin sind, sollen irgendwo gesondert aufgelistet werden, damit man halt einen überblick hat was noch fehlt.
Ich habe mir überlegt, dass ich in der Stand heute mappe mit dem befehl:
quanto = Range("A1").End(xlDown).Row
erstmal auszulese, wieviele daten im stand heute zu vergleichen sind und dann irgendwie mit do until/loop genauso viele variablen wie es werte gibt anzulegen und dann jeweils eine variable mit einem wert aus dem stand heute zu füllen.
(genau hier komm ich nicht weiter...:-(((((
dann einfach in das zweite sheet umschalten(select("..)und dann mit einer schleife zu schauen ob der aktuelle wert mit einer der variablen übereinstimmt
das dürfte ich dann selbst hinkriegen.....
Kann mir jemand helfen, dass ich es irgendwie schaffe automatisch genausoviele variablen zu deklarieren und zu füllen wie ein bestimmter wert vorgibt?????
Vielen Dank und Grüße
Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: variablen druch schleife anlegen
10.03.2004 10:44:30
Roland Hochhäuser
Hallo Thomas S.,
warum so kompliziert und mit dem Umweg über Variablen? Vergleiche doch einfach jeden Wert des 1. Sheets mit jedem Wert des 2. Sheets und entscheide, was bei Übereinstimmung passieren soll (löschen in Sheet 2, einfärben in Sheet 1 usw.). Was willst du in dem Zusammenhang mit Variablen anfangen?
Gruß
Roland
AW: variablen druch schleife anlegen
10.03.2004 10:52:15
Thomas S.
Hi Roland,
das hab ich natürlich als erstes versucht.
dann hab ich aber das problem, das er mir bei dem ersten wert der nicht übereinstimmt gleich sagt, der wert sei "neu" ohne erst abzuwarten ob der wert vielleicht in einer anderen zelle steht ...
vielleicht sieht man es an dem code besser:
Sheets("projekte").Select
Range("A2").Select
Sheets("vergleichsdaten").Select
Range("A1").Select
quanto = Range("A1").End(xlDown).Row
'grosse Schleife
Do Until vgl <> ""
'kleine Schleife
i = 0
Do Until i = quanto
i = i + 1
vgl = ActiveCell.Value
Sheets("projekte").Select
poj = ActiveCell.Value

If vgl <> poj Then
ActiveCell.Cells(1, 2).Select
ActiveCell.Value = poj
ActiveCell.Cells(2, 0).Select
Else
ActiveCell.Cells(2, 1).Select
End If

Sheets("vergleichsdaten").Select
Loop
Anzeige
AW: variablen druch schleife anlegen
10.03.2004 11:00:31
Roland Hochhäuser
Hallo Thomas S.,
ich sehe immer noch nicht, was du mit Variablen anfangen willst und weiß auch nicht, was bei Übereinstimmung mit welchem Wert in welchem Sheet passieren soll. Dein Code-Fragment ist da nicht aussagekräftig.
Gruß
Roland
AW: variablen druch schleife anlegen
10.03.2004 11:09:21
Thomas S.
Hi,
er prüft ob die werte in projekte in vergleichsdaten schon drin stehen. wenn nicht schreibt er den aktuellen wert aus projekte (variable heisst poj) in die spalte B des sheets vergleichsdaten rein.
das problem ist, das er gleich beim ersten wert der nicht in vergleichsdaten steht den "neuen" wert auflistet. er müsste eigentlich erst die anderen werte in vergleichsdaten anschauen und dann entscheiden: ist der wert in projekte irgendwo in vergleichsdaten schon drin????
-wenn ja dann einfach in projekte den nächsten wert auf vorhandensein in vergleichsdaten prüfen
-wenn nein, dann den wert in vergleichsdaten(oder irgendwo, ist egal) hinkopieren
hilft das?
gruß
Anzeige
AW: variablen druch schleife anlegen
10.03.2004 11:46:56
Roland Hochhäuser
Hallo Thomas S.,
das kopiert die "neuen" in Spalte B des Vergleichsdatenblattes. Bei Übereinstimmung passiert nichts.

Sub VergleichenUndKopieren()
Dim i As Integer, j As Integer, booCheck As Boolean
Sheets("Projekte").Activate
For i = 1 To Range("A65536").End(xlUp).Row
For j = 1 To Sheets("Vergleichsdaten").Range("A65536").End(xlUp).Row
booCheck = False
If Sheets("Projekte").Range("A" & i).Value = Sheets("Vergleichsdaten").Range("A" & j).Value Then
booCheck = True
Exit For
End If
Next
If Not booCheck Then Sheets("Vergleichsdaten").Range("B65536").End(xlUp) = Sheets("Projekte").Range("A" & i).Value
Next
End Sub

Gruß
Roland
Anzeige
AW: variablen druch schleife anlegen
10.03.2004 11:38:00
IngoG
Hallo Thomas,
für Deine Anforderung könntest Du am ehesten ein Feld deklarieren und dann nacheinander die werte einlesen.
Wenn Du aber nur wissen willst, welche Daten in Tabelle2 vorkommen die in Tabelle1 nicht vorhanden sind, könntest Du auch einfach alle Treffer direkt in ein Tabellenblatt (zB Tabelle3) schreiben...
Die unten beschriebene Lösung schreibt alle werte in das Feld Var_neue und gibt anschließend das feld nacheinander in Tabelle 3 aus.

Sub neue_ausgeben()
Dim VAR_Neue() As String
Dim ii%, jj%
jj = 0
For ii = 1 To Worksheets("Tabelle2").Range("A65536").End(xlUp).Row
If Worksheets("Tabelle1").Range("a:a").Find(Worksheets("Tabelle2").Range("A" & ii).Value) Is Nothing Then
jj = jj + 1
ReDim Preserve VAR_Neue(jj)
VAR_Neue(jj) = Worksheets("Tabelle2").Range("A" & ii)
End If
Next ii
'Ausgabe in tabelle 3
For ii = 1 To jj
Worksheets("Tabelle3").Range("A" & ii) = VAR_Neue(ii)
Next ii
End Sub

wenn Du nicht die Zwischenlösung mit variablen benötigst kannst Du auch direkt in tabelle3 schreiben:

Sub neue_ausgeben()
Dim ii%, jj%
jj = 0
For ii = 1 To Worksheets("Tabelle2").Range("A65536").End(xlUp).Row
If Worksheets("Tabelle1").Range("a:a").Find(Worksheets("Tabelle2").Range("A" & ii).Value) Is Nothing Then
jj = jj + 1
Worksheets("Tabelle3").Range("A" & jj) = Worksheets("Tabelle2").Range("A" & ii)
End If
Next ii
End Sub

Ich hoffe, das hilf Dir weiter
Gruß ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: variablen druch schleife anlegen
10.03.2004 13:44:25
Thomas S.
hi Ingo1
vielen dank, ich werde es auf jeden fall mal ausprobieren.
ich habs jetzt erstmal dann doch so lösen können, es ging dann wirklich ohne die variablen:

Sub vglsheets1()
Sheets("projekte").Select
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Range("b1").Select
ActiveCell.Value = "neu!"
Range("A2").Select
vgl = ActiveCell.Value
weiter:
Do Until vgl = ""
Sheets("vergleichsdaten").Select
Set findCell = ActiveSheet.Range("A1:A2000").Find(vgl, LookIn:=xlValues, lookat:=xlWhole)
If findCell Is Nothing Then GoTo Merken
Sheets("projekte").Select
ActiveCell.Cells(2, 1).Select
vgl = ActiveCell.Value
Loop
GoTo Ende
Merken: 'listet neuen wert auf
Sheets("projekte").Select
ActiveCell.Cells(1, 2).Select
ActiveCell.Value = vgl
ActiveCell.Cells(2, 0).Select
vgl = ActiveCell.Value
GoTo weiter
Ende:
MsgBox "Fertig"
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige