Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Identische Materialnr. finden und Zellen ersetzen

Identische Materialnr. finden und Zellen ersetzen
24.01.2007 09:06:22
Berkmann
Hallo ans Forum,
ich bin in Excel blutiger Anfänger (VBA geht ein bisschen) und bräuchte eure Hilfe bei einer in meinen Augen komlizierten Aufgabenstellung.
Hier man Excel-File:
https://www.herber.de/bbs/user/39896.xls
Ziel das Makros ist es, sich der Reihe nach eine Materialnummer aus Spalte A zu schnappen, und dann zu prüfen, ob diese auch in Spalte F vorhanden ist.
1. Ist dies der Fall soll die nebenstehende "Exakt" Zahl aus Spalte G kopiert werden und anstelle der 8 in Spalte "Pauschal" eingefügt werden; in der gleichen Zeile wie entsprechende Materialnummer aus Spalte A.
2. Lässt sich keine Übereinstimmung in Spalte F finden, bleibt die pauschale 8 in C stehen.
Mein Ansatz war folgender: Allerdings bekomme ich meist die Fehlermeldungen 9 ("Index außerhalb des gültigen Bereichs) und 91 ("Objektvariable oder With-Blockvariabel nicht festgelegt")

Sub Zusammenwurschteln()
Dim Dateiname As String
Dim i As Integer
Dim j As Integer
Dim x As Variant
Dim y As Variant
Dim L As Integer
Dim R As Range      'R = Rückkehraddresse
Dateiname = "Versuchstabelle.xls"
Windows(Dateiname).Activate
Sheets("Tabelle1").Activate
Range("A2").Select
R = ActiveCell.Address
For i = 1 To ActiveSheet.UsedRange.Rows.Count
x = ActiveCell.Value
Range("F2").Select
Do Until IsEmpty(ActiveCell)
y = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Selection.Copy
If x = y Then
Range(R).Select
ActiveCell.Offset(0, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveCell.Offset(0, -2).Select
Exit Do
End If
ActiveCell.Offset(1, 0).Select
Loop
Range(R).Select
ActiveCell.Offset(1, 0).Select
R = ActiveCell.Address
Next
End Sub

Ist mein Ansatz noch korrigierbar oder muss da was völlig neues her?
Wenn mir jemand damit helfen könnte wär ich echt dankbar.
Danke und beste Grüße
Manuel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Identische Materialnr. finden und Zellen ersetzen
24.01.2007 11:15:57
mpb
Hallo Manuel,
das geht ohne Makro. In Zelle C2 folgende Formel und dann nach unten kopieren:
=WENN(ISTNV(SVERWEIS(A2;$F$2:$G$29;2;0));8;SVERWEIS(A2;$F$2:$G$29;2;0))
Gruß
Martin Beck
AW: Identische Materialnr. finden und Zellen ersetzen
24.01.2007 11:22:47
Manuel
Hallo Martin, das ist ja klasse, vielen Dank.
Allerdings muss ich mein Beispielszenario noch auf eine viel größeres ExcelFile übertragen, könntest du mir sagen, was die Elemente der Formel in etwas bedeuten und machen?
Muss ich dann lediglich die Spaltennamen verändern?
Beste Grüße
Manuel Berkmann
AW: Identische Materialnr. finden und Zellen ersetzen
24.01.2007 11:38:24
mpb
Hallo Manuel,
bitte zuerst die Hilfe zu den Funktionen SVERWEIS, ISTNV und WENN anschauen. Falls Du dann die Formel und nicht die VBA-Lösung benutzen möchtest, bitte hier nochmal melden.
Gruß
Martin
Anzeige
AW: Identische Materialnr. finden und Zellen ersetzen
24.01.2007 11:20:39
lupo
Hallo, ich habe das Programm mal zum laufen gebracht. Da waren ein paar Kleinígkeiten, z.B. der Datentyp "Range" ist mir unbekannt. Weiter solltest du von dubiosen .activate usw. Methoden abkommen und alles direkt ansprechen. Habe leider nicht mehr Zeit den Code noch besser zu gestalten, schaus dir an und prüfe, ob das Programm auch das macht, was du möchtest.
Hier der Code (Ich hab die Aktivierung auf einen Button gelegt)

Private Sub CommandButton1_Click()
'Sub Zusammenwurschteln()
Dim Dateiname As String
Dim i As Integer
Dim j As Integer
Dim x As Variant
Dim y As Variant
Dim L As Integer
Dim R As Variant      'R = Rückkehraddresse
Dateiname = ActiveWorkbook.Name
Workbooks(Dateiname).Worksheets("Tabelle1").Range("A2").Select
R = ActiveCell.Address
For i = 1 To ActiveSheet.UsedRange.Rows.Count
x = ActiveCell.Value
Range("F2").Select
For j = 1 To ActiveSheet.UsedRange.Rows.Count
y = ActiveCell.Value
L = ActiveCell.Offset(0, 1).Value
If x = y Then
Range(R).Select
ActiveCell.Offset(0, 2).Value = L
Exit For
End If
ActiveCell.Offset(1, 0).Select
Next
Range(R).Select
ActiveCell.Offset(1, 0).Select
R = ActiveCell.Address
Next
End Sub

P.S. Wenn du eine Datei aktivieren möchtest, kannst du das so machen:
Windows(Name & ".xls").Activate
Ich hoffe, ich konnte dir ein bisschen weiterhelfen, keine Gewähr auf den Code
MfG, lupo
Anzeige
AW: Identische Materialnr. finden und Zellen ersetzen
24.01.2007 11:28:42
Manuel
Hey Lupo, klasse vielen Dank.
Es funktioniert...
Beste Grüße
Manuel Berkmann

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige