Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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

Spalteninhalt auf Änderung prüfen

Spalteninhalt auf Änderung prüfen
02.03.2015 12:30:40
Sebastian
Hallo,
ich suche weiterhin nach einer VBA-Lösung um den Spalteninhalt auf Gleichheit zu prüfen.
Ist der Inhalt in Spalte A1 bis A5 gleich, soll der Inhalt von der Spalte B1 bis B5 kopiert werden.
Ändert sich der Inhalt der Spalte A, soll der dazugehörige Inhalt der Spalte B kopiert werden.
In der Spalte A stehen 3000 unterschiedliche Inhalte.
Ich hab es schon mit:
Private Sub Worksheet_Change(ByVal Target As Range) spalte = ActiveSheet.UsedRange.Rows.Count If Not Application.Intersect(Target, Range("A1:A5" & spalte)) Is Nothing Then End If End Sub ...probiert, nur leider habe ich gelesen das diese Methode nur funktioniert wenn die Eingabe manuell erfolgt. Bei mir sind die Werte ja bereits vorhanden und das Makro soll bei einer Tastenkombination starten.
Bitte sagt mir falls ihr mehr Informationen braucht, da auf meine erste Anfrage bisher noch keine weitere Reaktion kam.
Ich danke euch schon einmal.

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bahnhof
02.03.2015 14:37:59
Sheldon
Hallo Sebastian,
"Ist der Inhalt in Spalte A1 bis A5 gleich, soll der Inhalt von der Spalte B1 bis B5 kopiert werden."
Bei A1 bis A5 sprechen wir von Zellen, die Spalte ist A, die Zeilen sind 1 bis 5. Der Inhalt der Zellen B1 bis B5 soll nun irgendwo hin kopiert werden. Aber wohin?
"Ändert sich der Inhalt der Spalte A, soll der dazugehörige Inhalt der Spalte B kopiert werden."
Ändert sich nun irgendeine Zelle in A, so soll die gesamte Spalte zu B kopiert werden?
Der Code, den du zeigst, bewirkt nichts. Die Datei würde ganz genauso ohne den Code funktionieren.
Ich nehme an, die anderen Leser verstehen auch nicht viel mehr aus deinem Text. Kannst du das vielleicht etwas präziser beschreiben, vor allem, was du erreichen willst?
Gruß
Sheldon

Anzeige
AW: Bahnhof
03.03.2015 08:20:10
Sebastian
Guten Morgen Sheldon,
danke dir für deine Antwort. Ich versuche mein Ausdruck zu verbessern und mein Problem näher zu erläutern.
Wenn der Zeileninhalt in der Spalte A sich ändert, soll ein Makro ausgeführt werden. Ich habe für den ersten Fall im folgenden Beispiel das Makro aufgezeichnet.
Sub Test()
' Test Makro
' Tastenkombination: Strg+b
' für Teil Nr.: 1
Range("B2:B4").Select
Selection.Copy
Sheets("SB").Select
Range("M4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Beispiel").Select
Range("C2:C4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SB").Select
Range("N4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Beispiel").Select
Range("D2:D4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SB").Select
Range("P4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Beispiel").Select
Range("E2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SB").Select
Range("I17").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K16").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Beispiel").Select
Range("H2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' für Teil Nr.: 2
' selbe Vorgehensweise
End Sub
Ziel ist es, für jede unterschiedliche Teil Nr. in einen anderen Tabellenblatt gewisse Werte berechnen zu lassen und in den ursprünglichen Tabellenblatt auszugeben.
Anbei noch die Beispieltabelle, auf welches sich das aufgezeichnete Makro bezieht.

Anzeige
AW: Bahnhof
03.03.2015 08:31:37
Sebastian
Ich kann die Tabelle leider nicht hochladen, in welchen Format auch immer. Von daher dieser Versuch:
  A        B                C             D         E           F        G        H
Teil	Bestell.	WE- Datum	Menge	WBZ in Atg	EK	SB alt	SB neu
1	01.01.2014	06.01.2014	2	20	      15,00 € 	0
1	02.01.2014	07.01.2014	4	20	      15,00 € 	0
1	03.01.2014	08.01.2014	5	20	      15,00 € 	0
2	04.01.2014	09.01.2014	8	10	      20,00 € 	0
2	05.01.2014	10.01.2014	6	10	      20,00 € 	0
2	06.01.2014	11.01.2014	5	10	      20,00 € 	0
2	07.01.2014	12.01.2014	3	10	      20,00 € 	0
3	08.01.2014	13.01.2014	2	20	       5,00 € 	0
3	09.01.2014	14.01.2014	1	20	       5,00 € 	0
3	10.01.2014	15.01.2014	2	20	       5,00 € 	0
3	11.01.2014	16.01.2014	5	20	       5,00 € 	0

Anzeige
Nachfrage ...
03.03.2015 09:22:24
Matthias
Hallo
Du willst also aus
Tabelle("Beispiel") B2:B4 kopieren und in Tabelle("SB") in M4 einfügen
Tabelle("Beispiel") C2:C4 kopieren und in Tabelle("SB") in N4 einfügen
Tabelle("Beispiel") D2:D4 kopieren und in Tabelle("SB") in B4 & in P4 einfügen
Tabelle("Beispiel") E2 kopieren und in Tabelle("SB") in I17 einfügen
und am Ende dann
Tabelle("BS") K16 kopieren und in Tabelle("Beispiel") in H2 einfügen?
Soweit richtig verstanden?
Gruß Matthias

AW: Nachfrage ...
03.03.2015 10:57:07
Sebastian
Hallo Matthias,
ja soweit vollkommen richtig, nur liegt auch darin mein großes Problem.
Im Endeffekt möchte ich nur für jedes Teil aus der Tabelle ("Beispiel") die dazugehörigen Zelleninhalte in die Tabelle ("SB") übertragen, da in ("SB") mit diesen Inhalten Berechnungen durchgeführt werden. Das Ergebnis, sprich SB neu, soll dann in die Tabelle ("Beispiel") zurück gegeben werden.
Am Ende möchte ich in der Tabelle ("Beispiel") für jedes Teil, in Spalte H, den berechneten SB- Wert erhalten.
Mein Makro aber weis nicht, dass er diesen Vorgang für jedes Teil wiederholen soll, weil mir ein Befehl fehlt, welcher den Zelleninhalt aus Spalte A prüft. Demnach bei einer Abweichung, sprich einen anderen Teil, soll er die benötigten Zelleninhalte, wie im Makro beschrieben, kopieren in Tabelle ("SB") und einen Wert aus ("SB") zurück ausgeben.
Mein Makro arbeitet momentan nur so, dass es einen von mir vorgegebenen Bereich kopiert, da ich ja weis auf wieviele Zeilen sich Teil 1 z.B. bezieht.
Ich möchte aber das es selbstständig weis, wieviele Zellen Teil 1 einnimmt ( in der Beispieltabelle A2:A4 ) und für GENAU diesen Bereich die benötigten Werte entnimmt. Beim zweiten Teil ( A5:A8 ) also auch nur die Zelleninhalte kopiert, bis sich der Zelleninhalt in Spalte A wieder ändert, also Teil 3 beginnt.
Ich hoffe diese Beschreibung ist genau genug um es zu verstehen.
Ich danke euch sehr für eure Bemühungen.

Anzeige
mein Bsp.
03.03.2015 11:22:35
Matthias
Hallo
Schau Dir bitte erstmal die Grundstruktur an!
In Deinem geposteten Code beginnst Du so:
    Range("B2:B4").Select
Selection.Copy
Sheets("SB").Select
Range("M4").Select
Das heißt, wenn Du Dich jetzt im falschen Blatt befindest kopiert Excel aus einer
nicht gewollten Quelle!
Ich vermute mal Du müsstest hier auch zu Beginn erst auf das QuellBlatt verweisen.
Schau Dir mal mein Bsp an.
https://www.herber.de/bbs/user/96122.xlsm
Starte einmal mit Deinem Code und schau
Schließe die Datei ohne Speichern
Öffne die Datei wieder und starte mit dem anderen Code
Schau Dir dabei bitte auch die Formatierung des ProgrammCode an.
Man sollte immer eine überschaubare Struktur benutzen um es Anderen
zu erleichtern den Code zu lesen.
Vielleicht erstellst Du mal ein Bsp.Datei so wie ich.
Dann kann man Dir sicher auch leichter helfen.
Bin aber jetzt erstmal offline.
Gruß Matthias

Anzeige
AW: mein Bsp.
04.03.2015 09:55:36
Sebastian
Hallo Matthias,
ich habe dein Rat befolgt und meinen Code entsprechend deiner Vorgaben angeglichen. Ist übersichtlicher geworden und "Application.ScreenUpdating" ist ne super Sache damit das ständige Tabellenblatt wechseln im Hintergrund abläuft.
Nun besteht mein Anliegen ja immernoch. Und der oben dargestellte Text war ja nur das aufgezeichnete Makro, um euch zu zeigen in welche Richtung mein Problem geht. Das ist mir anscheinend bisher immer noch nicht gelungen.
Ich hab mal versucht mein Problem mit der Methode "Dim zelle As Range
For Each zelle In Range" näher zu kommen. Folgend der Codeanfang.
Option Explicit
Sub Test()
' Tastenkombination: Strg+b
Application.ScreenUpdating = False
Dim zelle As Range
For Each zelle In Range("A2:A12")
If zelle  zelle.Offset(1, 0) Then
Do Until zelle = zelle.Offset(1, 0) Or zelle.Offset(1, 0) = ""
Range(zelle.Offset(1, 3)).Copy
Sheets("SB").Select
Range("B4").PasteSpecial Paste:=xlPasteValues
Loop
End If
Next
End Sub

Somit soll er im Bereich A2 bis A12 die Zellen prüfen. und mit zelle.Offset (1,0) jeweils die Prüfung um eine Zelle weiter nach unten weiterführen.
If zelle zelle.Offset (1,0) soll ausdrücken, wenn Zelle ungleich der nächsten Zelle dann...
Soweit denke ich passt meine Herangehensweise.
Aber dann weis ich nicht weiter was mir der "Do Until" Befehl sagt.
Range(zelle.Offset(1, 3)).Copy soll bei gleichen Zellen in Bereich A2:A12 den jeweiligen Wert in Spalte D kopieren. Aber genau an dieser Stelle bekomme ich eine Fehlermeldung:
Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen

Anzeige
Langsam verstehe ich ...
04.03.2015 11:40:37
Matthias
Hallo
Ich glaube ich hab Dein Problem jetzt verstanden.
Da muss ne Schleife außen herum ...
Du mußt mit eine Schleife erst den RangeBereich von Teil 1 in A ermitteln(A2:A4), den Code ausführen.
Dann den RangeBereich von Teil 2 in A ermitteln(A5:A8) und den Code ausführen.
Dann den RangeBereich von Teil 3 in A ermitteln(A9:A12) und den Code ausführen.
usw.
Hab aber jetzt keine Zeit, sorry
Erst heute Abend/Nacht
Gruß Matthias

AW: Langsam verstehe ich ...
04.03.2015 13:01:31
Sebastian
Hallo Matthias,
es freut mich sehr, dass wir jetzt fast von der gleichen Systematik sprechen. Genau darum geht es.
Ich muss es schaffen durch eine Schleife oder Ähnlichen den RangeBereich für alle möglichen Teile (ca. 3000 Unterschiedliche ) in Spalte A festzulegen und dann gewisse Zellinhalte anzusprechen, also nen Code auszuführen, pro Teil. Somit kann ich dann pro Teil in einen anderen Tabellenblatt etwas berechnen und es dann wieder in ursprünglichen Tabellenblatt ausgeben.
Durch die Schleife soll es dann immer wenn in Bereich von Spalte A ein anderes Teil vorliegt, den Code wieder ausführen, bis zum Ende der Spalte A.
Ich danke dir das du mir hilfst bis hoffentlich bald.
Gruß Sebastian

Anzeige
AW: Langsam verstehe ich ...
05.03.2015 08:15:35
Sebastian
Guten Morgen,
ich glaube dieser Beitrag geht in eine ähnliche Richtung zumindest was das Kopieren beim Erfüllen meiner gewünschten Bedingung betrifft. Nur leider komm ich nicht sehr weit damit, da ich nicht weis wie man in VBA meine Bedingung ausdrückt. Einfach mal bei Recherche diesen Eintrag suchen:
Kopieren von Zellen bei Erfüllen einer Bedingung

die Schleife für die Zellbereiche ...
05.03.2015 09:38:07
Matthias
Hallo
Nehmen wir also mal an Deine Daten stehen so in Deiner Tabelle
 ABCDEFGH
1TeilBestell.WE-DatumMengeWBZ in AtgEKEB altEB neu
2101.01.201406.01.2014220     15 € 0 
3102.01.201407.01.2014420     15 € 0 
4103.01.201408.01.2014520     15 € 0 
5104.01.201409.01.2014810     20 € 0 
6205.01.201410.01.2014610     20 € 0 
7306.01.201411.01.2014510     20 € 0 
8307.01.201412.01.2014310     20 € 0 
9308.01.201413.01.2014220      5 € 0 
10409.01.201414.01.2014120      5 € 0 
11510.01.201415.01.2014220      5 € 0 
12511.01.201416.01.2014520      5 € 0 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4


Nun lass folgenden Code laufen:
Option Explicit
Sub schleife()
Dim x&, j&, FirstCell$, LastCell$
For j = 1 To 5 'die 5 Anpassen oder Ermitteln (5 Teile)
For x = 2 To 12 'die 12 bitte Anpassen oder Ermitteln (letzte Zeile in A)
If Cells(x, 1) = j Then
If FirstCell = "" Then FirstCell = Cells(x, 1).Address
LastCell = Cells(x, 1).Address
End If
Next
Range(FirstCell & ":" & LastCell).Select 'zur Demo
MsgBox "Bereich:" & vbLf & FirstCell & ":" & LastCell, vbInformation, " Teil " & j
FirstCell = ""
Next
Cells(1, 1).Select
End Sub



https://www.herber.de/bbs/user/96168.xlsm
Das Select ist eigentliche nicht nötig, dient hier nur zur Demo.
Gruß Matthias

Anzeige
AW: die Schleife für die Zellbereiche ...
05.03.2015 10:06:03
Sebastian
Ich habe schonmal meinen ersten Formulierungsfehler gefunden.
Deine Schleife funktioniert einwandfrei, ich verstehe sie auch fast vollständig. Aber hab ich mit der Formulierung der Teil. Nr nicht aufgepasst. Ich habe sie mit einfachen aufsteigenden Zahlen benannt, um die Veranschaulichung zu vereinfachen. In Wirklichkeit sind die Teile mit Nummern wie:
3.030.005-047; 3.030.005-044; 1.002.008-X08 usw. definiert. Ich denke da funktioniert die Schleife nicht mehr oder? da du ja explizit darauf hinweist, dass sie aufsteigend geordnet sein sollen.
Das war ein Fehler von mir das tut mir Leid.

Anzeige
so kommen wir nicht weiter ...
05.03.2015 10:14:23
Matthias
Hallo
Dann solltest Du nun vielleicht doch mal ne Bsp.Datei hochladen.
Bitte mit realistischen TeileNummern.
Gruß Matthias

AW: mit Formel für Teile-ID gehts
05.03.2015 11:40:34
Sebastian
Hallo,
also ich habe es jetzt so angepasst mit der Teil- ID Formel. Nun habe ich eine Frage zum Code.
Die Zeile:
If Cells(x, 9) = j Then...worauf bezieht sich die 9?
Das Teilproblem mit den verschiedenen Teil Nr. ist ja jetzt erledigt.
Der nächste Schritt ist für jedes Teil einen bestimmten Bereich zu kopieren und ihn an einen bestimmten Bereich im Tabellenblatt ("SB") zu kopieren.
In unseren Beispiel würde ich gern diese Informationen pro Artikel im Tabellenblatt ("SB") kopieren:
- Bestellmenge in F4
- WBZ in I17
danach möchte ich mir den Wert aus ("SB") in K16 zurück in ("Beispiel") in L bei SB neu übertragen.
Nachdem die Zelle in L für SB neu gefüllt wurde, müssen erst einmal die kopierten Werte in ("SB") wieder raus. Dazu muss das Eingabe löschen Makro von Button aktiviert werden.
Anschließend soll der Vorgang für das nächste Teil vonstatten gehen.
Ich hoffe du kannst mir da auch noch weiter helfen.
Ich danke dir für deine Hilfe bisher
Gruß Sebastian

AW: mit Formel für Teile-ID gehts
05.03.2015 11:46:16
Sebastian
Ich verbessere meine Aussage nochmal,
Falls mehere Einträge für ein Teil vorhanden sind, wie für 3.030.005-044, müssen auch alle Bestellmengen in Bereich ("SB") ab F4 beginnend bis, je nachdem F4:F8 bei 4 Einträgen bsp.weise, übertragen werden.

AW: mit Formel für Teile-ID gehts
05.03.2015 13:56:21
Sebastian
Ich habe mich mal daran versucht den Kopiervorgang zu programmieren:
Option Explicit
Sub schleife()
Dim x&, j&, FirstCell$, LastCell$
For j = 1 To Range("J1").Value 'Max-TeileNr. aus Zelle einlesen
For x = 2 To 14 'die 14 bitte Anpassen oder Ermitteln (letzte Zeile in A)
If Cells(x, 9) = j Then
If FirstCell = "" Then FirstCell = Cells(x, 1).Address
LastCell = Cells(x, 1).Address
End If
Next
If Range(FirstCell & ":" & LastCell).Select Then
Cells.Range("C2").Copy    'hier wird ein Befehl mit Offset.(0,3)).Copy benötigt
Sheets("SB").Select
Range("F4").Select
ActiveSheet.Paste
MsgBox "Bereich:" & vbLf & FirstCell & ":" & LastCell, vbInformation, Selection(1).Value
FirstCell = ""
Cells(1, 1).Select
End If
Next
End Sub
klappt aber so nicht. Er gibt mir eine Fehlermeldung aus.

AW: mit Formel für Teile-ID gehts
05.03.2015 18:53:00
Matthias
Hallo
Schau ich mir heute Abend/Nacht an.
Bin jetzt nicht am HeimRechner.
Gruß Matthias

worauf bezieht sich die 9
05.03.2015 21:40:19
Matthias
Hallo
Zitat:
Die Zeile:
If Cells(x, 9) = j Then...worauf bezieht sich die 9?

 ABCDEFGHIJ
1Spalte 1Spalte 2Spalte 3Spalte 4Spalte 5Spalte 6Spalte 7Spalte 8Spalte 9Spalte 10
2Artikel      WE-DatumBestell-MengeBestelldatWBZ Preis           MEP Teil-ID7 Teile
33.030.005-002   17.02.2014317.12.20131538,12stk 1 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Kommst Du jetzt drauf?
Gruß Matthias

da gibts noch Fragen ...
05.03.2015 22:09:36
Matthias
Hallo
Folgender Fall
 ABC
73.030.005-044   13.03.201410
83.030.005-044   24.01.201410
93.030.005-044   24.02.20145
103.030.005-044   17.02.20142
113.030.005-044   24.03.20145


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Nun willst Du also ab F4 (also in F4:F8) in Tabelle("SB") die Bestellmengen eintragen, Richtig?
 EF
32014
4110
5210
635
742
855
96 
107 
118 
129 
1310 
1411 
1512 
16?32

Formeln der Tabelle
ZelleFormel
F16=SUMME(F4:F15)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Was aber wenn es mehr als 12 Einträge gibt für das entsprechende Teil,
oder kann das nicht vorkommen?
Evtl. könnte man dann dem jeweiligen Zielbereich einen definierten Namen zuweisen.
Dadurch wäre dann das Händling im ProgrammCode sicher einfacher.
Gruß Matthias

AW: da gibts noch Fragen ...
06.03.2015 07:46:30
Sebastian
Guten Morgen Matthias,
also den Bezug zur neunten Spalte habe ich jetzt verstanden danke.
Und die 12 Mengeeinträge beziehen sich auf die Monate eines Jahres.
Also können nie mehr als 12 Mengenangaben vorhanden sein und somit ist die 12 die mögliche Maximalanzahl.
Genauso wie du es im Beispiel dargestellt hast möchte ich es umsetzen.
Ich danke dir das du dir die Zeit nimmst.
Gruß Sebastian

AW: da gibts noch Fragen ...
06.03.2015 11:29:14
Matthias
Hallo
Ich muss nochmal nachfragen!
Welchen berechneten Wert willst Du aus "SB" zurückschreiben?
Von welcher Zelle nach welcher Zelle?
heute Abend/Nacht dann evtl. mehr.
Gruß Matthias

AW: da gibts noch Fragen ...
06.03.2015 13:04:05
Sebastian
Hallo,
ich möchte die Angabe des empfohlenen Sicherheitsbestand in Zelle K16 aus Tabelle "SB" zurückschreiben in die jeweilige Zelle für das entsprechende Teil in Spalte L in Tabelle "Beispiel"
Also nehmen wir Teil 3.030.005-002 an, so soll dann der Wert aus "SB" in Zelle L2 ausgegeben werden.
Bei Teil 3.030.005-024 wiederum in Zelle L4 usw.
Ich bin das WE auch zu erreichen und schau rein.
Ich danke dir und wünsche ein schönes Wochenende.
Gruß Sebastian

AW: da gibts noch Fragen ...
06.03.2015 23:03:54
Matthias
Hallo
Nach meinem Testlauf des Makro sieht das dann so aus.
Wäre das korrekt so?
Ich meine die zurückgeschriebenen Werte in Spalte("H")
 ABCDEFGHIJ
1Artikel      WE-DatumBestell-MengeBestelldatWBZ Preis           MEPSB empfohlenTeil-ID7 Teile
23.030.005-002   17.02.2014317.12.20131538,12stk31 
33.030.005-012   17.02.2014617.12.20131541,67stk62 
43.030.005-024   17.02.2014317.12.20131575,58stk33 
53.030.005-042   17.02.2014217.12.2013053,75stk24 
63.030.005-043   06.01.20141020.11.20132022,87stk105 
73.030.005-044   13.03.20141027.02.20142030,72stk106 
83.030.005-044   24.01.20141020.11.20132030,12stk106 
93.030.005-044   24.02.2014506.02.20142030,12stk126 
103.030.005-044   17.02.2014217.12.20132030,12stk126 
113.030.005-044   24.03.2014528.02.20142030,72stk116 
123.030.005-047   24.02.2014506.02.20142045,35stk57 
133.030.005-047   06.01.20141020.11.20132075,59stk137 
143.030.005-047   24.03.2014528.02.20142045,35stk117 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

AW: da gibts noch Fragen ...
06.03.2015 23:24:09
Matthias
Hallo
Es geht um Spalte("H")
Folgende Teile würden bei meinem Code dies ergeben:
 ABCDEFGHIJ
1Artikel      WE-DatumBestell-MengeBestelldatWBZ Preis           MEPSB empfohlenTeil-ID3 Teile
23.030.005-043   17.02.2014317.12.20131538,12stk31 
33.030.005-043   17.02.2014617.12.20131541,67stk71 
43.030.005-043   17.02.2014317.12.20131575,58stk61 
53.030.005-043   17.02.2014217.12.2013053,75stk41 
63.030.005-043   06.01.20141020.11.20132022,87stk131 
73.030.005-044   13.03.20141027.02.20142030,72stk102 
83.030.005-044   24.01.20141020.11.20132030,12stk102 
93.030.005-044   24.02.2014506.02.20142030,12stk122 
103.030.005-044   17.02.2014217.12.20132030,12stk122 
113.030.005-044   24.03.2014528.02.20142030,72stk112 
123.030.005-047   24.02.2014506.02.20142045,35stk53 
133.030.005-047   06.01.20141020.11.20132075,59stk133 
143.030.005-047   24.03.2014528.02.20142045,35stk113 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wäre das so korrekt bei diesen Daten?
Gruß Matthias

hab keine Zeit am WE, sorry
07.03.2015 09:26:31
Matthias
Hallo
So hab ichs bis jetzt
Option Explicit
Sub schleife()
Dim x&, j&, y&, FirstCell$, LastCell$
Tabelle1.Select 'Starttabelle
Range("Empfohlen").ClearContents 'Zielbereich leeren
For j = 1 To Range("J1").Value   'Max-TeileNr. aus Zelle einlesen
For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(x, 9) = j Then
If FirstCell = "" Then FirstCell = Cells(x, 1).Address
LastCell = Cells(x, 1).Address
End If
Next
Range(FirstCell & ":" & LastCell).Select 'zur Demo
Tabelle4.Range("Bestellmenge").ClearContents 'Zielbereich leeren
For y = 1 To Selection.Count
Tabelle4.Range("Bestellmenge")(y) = Selection(y).Offset(, 2).Value
Tabelle4.Range("I17") = Selection(y).Offset(, 4).Value
Selection(y).Offset(, 7) = Tabelle4.Range("K16").Value
Next
Tabelle4.Select
MsgBox "Bereich:" & vbLf & FirstCell & ":" & LastCell, vbInformation, Selection(1).Value
Tabelle1.Select 'zur Kontrolle
FirstCell = ""
Tabelle4.Range("Bestellmenge").ClearContents 'Zielbereich leeren
Next
Cells(1, 1).Select
End Sub
In den letzten beiden Beiträgen hatte ich K17 zurückgeschrieben. Das war falsch.
Hier nun aus K16.
In der Datei sind zwei Namen definiert.
https://www.herber.de/bbs/user/96228.xlsm
Die Zellen von SB empfohlen habe ich mal mit Nachkommastelle formaiert
Damit konnte ich besser erkennen was passiert.
Vielleicht ist es ja nun so wie Du es brauchst, ansonsten später mehr.
Bin am WE wahrscheinl. nicht online.
Gruß Matthias

Spalte("L") wäre .Offset(,11)
07.03.2015 13:43:07
Matthias
Hallo
Da war noch die falsche Spalte als Ziel gesetzt.
Wenns in Spalte("L") soll dann natürlich (offset(,11) und nicht offset(,7)
 ABCDEFGHIJKL
1Artikel      WE-DatumBestell-MengeBestelldatWBZ Preis           MEP Teil-ID7 Teile SB empfohlen
23.030.005-002   17.02.2014317.12.20131538,12stk 1  0,000
33.030.005-012   17.02.2014617.12.20131541,67stk 2  0,000
43.030.005-024   17.02.2014317.12.20131575,58stk 3  0,000
53.030.005-042   17.02.2014217.12.2013053,75stk 4  0,000
63.030.005-043   06.01.20141020.11.20132022,87stk 5  0,000
73.030.005-044   13.03.20141027.02.20142030,72stk 6  0,000
83.030.005-044   24.01.20141020.11.20132030,12stk 6  0,000
93.030.005-044   24.02.2014506.02.20142030,12stk 6  3,740
103.030.005-044   17.02.2014217.12.20132030,12stk 6  5,115
113.030.005-044   24.03.2014528.02.20142030,72stk 6  4,544
123.030.005-047   24.02.2014506.02.20142045,35stk 7  0,000
133.030.005-047   06.01.20141020.11.20132075,59stk 7  4,581
143.030.005-047   24.03.2014528.02.20142045,35stk 7  3,740


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
So nun muss ich aber los, Enkelchen wartet auf sein Geschenk ;-)
Schö.WE
Gruß Matthias

AW: da gibts noch Fragen ...
08.03.2015 21:59:15
Matthias
Hallo
Zitat
Ich bin das WE auch zu erreichen und schau rein.
Tja, da war ich wohl der Einzige der reingeschaut hat.
Gruß Matthias

AW: da gibts noch Fragen ...
09.03.2015 08:19:18
Sebastian
Guten Morgen Matthias,
ich kam das Wochenende nicht dazu es zu testen. Mein Plan war eigentlich ein anderer da hast du recht. Ich sitze jetzt dran und gebe dir gleich Rückmeldung.

AW: da gibts noch Fragen ...
09.03.2015 09:20:03
Sebastian
Hallo,
es klappt ja soweit ganz gut das freut mich sehr! Aber die Ausgabe des SB- Wertes ist noch fehlerhaft. für das Teil 3.030.005-044 werden verschiedene Werte ausgegeben. Gibt es eine Möglichkeit pro Teil nur einmal den SB- Wert auszugeben? Beim durchspielen des Makros führt er ja auch nur 7 Berechnungen aus. Ich weis nicht zu richtig wo die ganzen anderen Werte her kommen.
Danke das du dir so Zeit dafür nimmst.
Gruß Sebastian

AW: da gibts noch Fragen ...
09.03.2015 10:13:01
Sebastian
So habe ich mir das gedacht. Ich weis wie gesagt nicht woher die anderen berechneten Werte stammen.
Userbild

AW: da gibts noch Fragen ...
11.03.2015 13:06:50
Sebastian
Ich hoffe das mein Beitrag jetzt als noch offen angezeigt wird

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige