Hallo,
bin eine absolute Niete, was Programmierung betrifft. Bitte helft mir. Habe folgendes Problem:
Möchte mit Hilfe eines Makros im Excel folgendes lösen. Habe eine Datei mit 2 Arbeitsmappe (Mappe1 und Mappe 2). Er soll aus Spalte B den Wert nehmen, kopieren und in Mappe 2 suchen. Hat er ihn gefunden, so soll er zu diesem Wert den entsprechenden Wert aus der Spalte A in Mappe1 schreiben. Sollte er keine Übereinstimmung finden, so soll er NULL zu den Datensatz in Mappe1 schreiben.
Hier das entsprechende Makro aus der Aufzeichnung für Zeile 2 (1. Datensatz).
Sub Suche()
’
’ Suche Makro
’
Range(„B2“).Select
ActiveCell.FormulaR1C1 = „Namex“
Sheets(„Mappe2“).Select
Cells.Find(What:=„Namex“, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range(„A1604“).Select
Selection.Copy
Sheets(„Mappe1“).Select
Range(„C2“).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
Die Mappe1 enthält 982 Datensätze. Ich brauche also einen Befehl, der das Makro mittels Schleife solange wiederholt, bis er beim letzten Datensatz angelangt ist.
DANKE!!!
Hi,
For intX = 1 To 982
'...Deine Anweisungen hier
Next
Gruß, Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi kleinhans
,
Möchte mit Hilfe eines Makros im Excel folgendes lösen. Habe
eine Datei mit 2 Arbeitsmappe (Mappe1 und Mappe 2). Er soll
aus Spalte B den Wert nehmen, kopieren und in Mappe 2 suchen.
Wo, welche Spalte, soll der Code in Mappe2 suchen?
Hat er ihn gefunden, so soll er zu diesem Wert den
entsprechenden Wert aus der Spalte A in Mappe1 schreiben.
Wohin, rechts, links davon?
Sollte er keine Übereinstimmung finden, so soll er NULL zu den
Datensatz in Mappe1 schreiben.
in C von Mappe1?
Okay, so grauenvoll sieht halt aufgezeichneter Code aus.
Okay2, Excel kann dafür oft gar nix, es muß angeblich so aufzeichnen *glaub*
Wie auch immer, am Code änder ich nix, den lösche ich und schreib 'nen neuen, sofern mein Wissensdurst gestillt wurde was du genau machen willst.
Gruß
Reinhard
Hi Reinhard,
ich habe dir mal meine Anmerkungen neben deine Anmerkungen geschrieben. Nebenbei noch, woher hast du nur das Know How? 
Gruß Sylvia
Hi
,
Möchte mit Hilfe eines Makros im Excel folgendes lösen. Habe
eine Datei mit 2 Arbeitsmappe (Mappe1 und Mappe 2). Er soll
aus Spalte B den Wert nehmen, kopieren und in Mappe 2 suchen.
Wo, welche Spalte, soll der Code in Mappe2 suchen?
Er soll in Spalte I, J, K, L, M, N, O der Mappe2 suchen. Grund: der Suchbegriff ist in einer der 7 Spalten.
Hat er ihn gefunden, so soll er zu diesem Wert den
entsprechenden Wert aus der Spalte A in Mappe1 schreiben.
Wohin, rechts, links davon? In rechte Spalte.
Sollte er keine Übereinstimmung finden, so soll er NULL zu den
Datensatz in Mappe1 schreiben.
in C von Mappe1? Ja in C.
Okay, so grauenvoll sieht halt aufgezeichneter Code aus.
Okay2, Excel kann dafür oft gar nix, es muß angeblich so
aufzeichnen *glaub*
Wie auch immer, am Code änder ich nix, den lösche ich und
schreib 'nen neuen, sofern mein Wissensdurst gestillt wurde
was du genau machen willst.
Gruß
Reinhard
Hi Sylvia,
ich habe dir mal meine Anmerkungen neben deine Anmerkungen
geschrieben.
Ich schaue mal.
Nebenbei noch, woher hast du nur das Know How?
Learning by doing, kein Kurs, kein Buch, Interesse.
Gruß
Reinhard
Möchte mit Hilfe eines Makros im Excel folgendes lösen. Habe
eine Datei mit 2 Arbeitsmappe (Mappe1 und Mappe 2). Er soll
aus Spalte B den Wert nehmen, kopieren und in Mappe 2 suchen.
Hat er ihn gefunden, so soll er zu diesem Wert den
entsprechenden Wert aus der Spalte A in Mappe1 schreiben.
Sollte er keine Übereinstimmung finden, so soll er NULL zu den
Datensatz in Mappe1 schreiben.
Die Mappe1 enthält 982 Datensätze. Ich brauche also einen
Befehl, der das Makro mittels Schleife solange wiederholt, bis
er beim letzten Datensatz angelangt ist.
Hi Silvia,
Option Explicit
Sub tt()
Dim ws2 As Worksheet, Zei As Long, Gef As Range, Letzte As Long
Set ws2 = Worksheets("Tabelle2")
Letzte = ws2.Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
For Zei = 1 To 982
If .Cells(Zei, 2) "" Then
Set Gef = ws2.Range("I1:open\_mouth:" & Letzte).Find(.Cells(Zei, 2), LookIn:=xlValues)
If Not Gef Is Nothing Then
.Cells(Zei, 3) = ws2.Cells(Gef.Row, 1)
Else
.Cells(Zei, 3) = 0
End If
Else
.Cells(Zei, 3) = ""
End If
Next Zei
End With
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard