Live-Forum - Die aktuellen Beiträge
Datum
Titel
20.05.2024 20:08:41
20.05.2024 18:23:06
20.05.2024 17:14:25
Anzeige
Archiv - Navigation
1840to1844
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

Makro "zerschossen"

Makro "zerschossen"
07.08.2021 11:45:36
Fred
Hallo Excel Experten,
ich habe gestern abend ein Makro dummerweise aus "Experimentierfreudigikeit zerschossen" und weis nun nicht mehr, wo oben und unten ist. Passiert, wenn man einen Code nicht wirklich versteht.
Es sollen die Ergebnisse der Spiele von Blatt "Ergebnisse" den Spielen von Blatt "TagesListe" zugeordnet werden. "Derzeitiger Stand" :

Sub Ergebnisse_TagesListe()
Dim ArZiel, ArQuelle, rngZiel As Range, n&, c&
With Sheets("Ergebnisse") 'Reparatur
Set rngQuell = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 2).Resize(, 6)
End With
With Sheets("TagesListe") ' Basis
Set rngZiel = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 2).Resize(, 6)
End With
ArQuelle = rngQuell.Value2
ArZiel = rngZiel.Value2
For n = LBound(ArQuelle) To UBound(ArQuelle)
For c = LBound(ArZiel) To UBound(ArZiel)
If ArZiel(c, 4) = ArQuelle(n, 6) Then
For sp = 8 To 11
Sheets("TagesListe").Cells(c + 1, sp + 0) = Sheets("Ergebnisse").Cells(n + 1, sp + 0) _
Next sp
'  Exit For
End If
Next
Next
End Sub
Kann ein Experte bitte mal auf die Beispielmappe schauen und seine Kompetenz einbringen.
https://www.herber.de/bbs/user/147496.xlsb
Gruss
Fred

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro "zerschossen"
07.08.2021 12:05:27
ralf_b
nee, das passiert wenn man ohne Sicherheitskopie arbeitet.
Was genau geht denn nicht mehr?
Du hast den Code doch aus einem Forum. Gibts den dort nicht mehr im Original?
AW: Makro "zerschossen"
07.08.2021 12:15:31
Fred
Hallo ralf,
fängt wohl bei der Zuordnung des Kriteriums an (Gastteam,- obwohl eigentlich egal, ob ich das Heimteam oder Gastteam nenne)
Mit "Value2" bin ich mir auch nicht so sicher, da Vereinsnamen in Blatt "Ergebnisse" aus einer Formel herraus kommen (mit Textumbrüchen)
Dadurch sind dieErgebnisse, welche derzeit eingetragen werden (durch Makro in TagesListe) total falsch.
Jo, Sicherheitskopie! Gestern war ich echt schei.. drauf.
Gruss
Fred
Anzeige
AW: Makro "zerschossen"
07.08.2021 12:52:17
ralf_b
1. verwende "option explicit", dann fallen falsch geschriebene oder nicht definierte Variablen auf.
2. deine Ranges beginnen im Code bei A2+2 Zeilen offset also A4. Aber im 2ten Blatt später. Hier stimmt die Rangegröße nicht. War das auch so vorm Zerschiessen?
3. rngQuell und rngZiel sind nicht notwendig, da sie später nicht benutzt werden. Es würde auch so gehen.

ArQuelle = .Range("A4", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 6).Value 
4. Die Spalte zum Vergleich der Quelle ist 4 (D). Da steht aber keine Mannschaft drin. Zudem denke ich das man das nur zuordnen kann wenn man die Kombination Heim und Gast vergleicht. Das sehe ich hier nicht gegeben.

If ArZiel(c, 4) = ArQuelle(n, 6) Then
nur ein Vergleich, Spalte D mit F
Ich glaube das hat nie funktioniert. Soviel kann man sich nicht zerschiessen.
gruß
rb
Anzeige
AW: Makro "zerschossen"
07.08.2021 13:27:03
Fred
Hallo Ralf,
1 Vergleich reicht aus, da der Vereinsname in Blatt "Ergebnisse" nur 1x vorkommt.....
Ich habe eben versucht, deine Ansätze umzusetzen,- ... ich bekomme gerade "überhaupt nichts auf die Reihe".
Ich versuche es heute Nachmittag nochmals.
Gruss
Fred
AW: Makro "zerschossen"
07.08.2021 18:12:21
Fred
Hallo Ralf,
ursprünglich war das Makro auf "2 Kriterien" ausgelegt,- Heim,- Gastteam.
Der Murgs entstand aus Experimenten und später dem Ziel, nur das Heimteam als Kriterium zu setzen.
Wenn ich nun

.End(xlUp)).Offset(0, 2).Resize(, 6)
änder, in:

.End(xlUp)).Offset(0, 0).Resize(, 6)
, müßte doch das Heimteam das Kriterium sein? Das Heimteam in Quelle "Ergebnisse" und das Heimteam in Ziel "TagesListe"
Ich habe noch nie Offset und vor allem "Resize" verstanden .....
https://www.herber.de/bbs/user/147497.xlsb
Anzeige
AW: Makro "zerschossen"
07.08.2021 21:04:59
Fred
Hallo Werner,
mannmannmann!
Ich weis nicht, warum ich mit dem "Resize" solch riesige Probleme habe,- raff es einfach nicht!
Ich habe auf das Original-Makro geschaut https://www.herber.de/forum/cgi-bin/callthread.pl?index=1840620#1840620
es so wie auf den aktuellen Blättern angepasst. Da klappt es,
Auf den aktuellen Blätter "Ergebnisse + TagesListe" klappt es nicht.
Langsam werde ich wütend :-)
https://www.herber.de/bbs/user/147498.xlsb
Kannst du mal drauf schaun und mir sagen, wo der Unterschied liegt und was getan werden muss, damit es funzt,- bitte!
Gruss
Fred
Anzeige
resize
07.08.2021 21:46:29
ralf_b
resize vergrößert den angegebenen Bereich und offset verschiebt ihn. Jeweils in die Richtungen ,die du angibst. (zeilen, spalten).
mir wird das mit den unterschiedlichen Blättern zu viel.

With Sheets("TagesListe")
Set rngZiel = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 2).Resize(, 7)
End With
Du hast hier einen Bereich von A2 bis A letzte Belegte Zeile. $A$2:$A$10 Dieser wird um 2 Spalten verschoben offset(0,2)
Somit ist der Bereich jetzt in Spalte C $C$2:$C$10
Resize vergrößert den Bereich auf 7 Spalten auf $C$2:$I$10
Anzeige
ausgeschossen, Munition leer
07.08.2021 21:34:58
Fred
Hallo Werner,
endlich,- Treffer nach x Versuchen

Dim ArZiel, ArQuelle, rngZiel As Range, n&, c&
With Sheets("Ergebnisse")
.Range("b10:c" & .Cells(.Rows.Count, "H").End(xlUp).Row).Replace Chr(10), ""
Set rngQuell = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 2).Resize(, 7)
End With
With Sheets("TagesListe")
Set rngZiel = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp)).Offset(0, 2).Resize(, 7)
End With
ArQuelle = rngQuell.Value2
ArZiel = rngZiel.Value2
For n = LBound(ArQuelle) To UBound(ArQuelle)
For c = LBound(ArZiel) To UBound(ArZiel)
If ArZiel(c, 2) = ArQuelle(n, 4) And _
ArZiel(c, 3) = ArQuelle(n, 5) Then
For sp = 8 To 11 'Wertespalten
Sheets("TagesListe").Cells(c + 1, sp + 0) = Sheets("Ergebnisse").Cells(n + 1, sp + 0) _
Next sp
End If
Next
Next
ich glaub, das war es.
Gruss
Fred
Anzeige
Vielen Dank, Werner & ralf_b
08.08.2021 14:21:02
Fred
Hallo Werner und ralf_b,
meine Sheets mit den zuordnen von Daten (Ergebnissen) funktioniert nun.
Sorry das ich euch beiden so auf den Keks gegangen bin,- habe mich dabei sicherlich nicht wohl gefühlt.
Ich habe mir für heute Nachmittag und die nächsten Tage vorgenommen, mich im Web (google, youtube) über "offset & resize" zu informieren. Den Aufbau im Makro und überhaupt den Sinn von diesen Eigenschaften (wenn möglich über viele Beispiele) zu verstehen.
Seht es also als Chance, euch in den nächsten Tagen zu erholen :-)
Gruss
Fred
Anzeige
AW: Vielen Dank, Werner & ralf_b
08.08.2021 15:36:45
Werner
Hallo,
sowohl Offset als auch Resize ist in deinem Fall sowieso überflüssig

Option Explicit
Sub ergebnis()
Dim ArZiel, ArQuelle, n&, c&, sp&
Application.ScreenUpdating = False
With Sheets("Result_1")
.Range("H4:I" & .Cells(.Rows.Count, "H").End(xlUp).Row).Replace Chr(10), ""
ArQuelle = .Range("H4:I" & .Cells(.Rows.Count, "H").End(xlUp).Row).Value
End With
With Sheets("Result_2")
ArZiel = .Range("D10:E" & .Cells(.Rows.Count, "D").End(xlUp).Row).Value
End With
For n = LBound(ArQuelle) To UBound(ArQuelle)
For c = LBound(ArZiel) To UBound(ArZiel)
If ArZiel(c, 1) = ArQuelle(n, 1) And _
ArZiel(c, 2) = ArQuelle(n, 2) Then
For sp = 8 To 11
Sheets("Result_2").Cells(c + 9, sp) = Sheets("Result_1").Cells(n + 3, sp + 3)
Next sp
End If
Next
Next
End Sub
Wobei sich darüber zu informieren sicherlich kein Fehler ist.
Gruß Werner
Anzeige
AW: Vielen Dank, Werner & ralf_b
08.08.2021 16:58:09
Fred
Hallo Werner,
dieses Makro ist für mein Hirn wesentlich nachvollziehbarer. Niemals hätte ich - wie zuvor 1 1/2 Tage - an diesem Makro so rumgeeiert und dich als auch ralf_b so genervt.
Jetzt, wo diese Aufgabe mit "Offset & Resize" umgesetzt ist, lasse ich es allerdings auch so. Allerdings nehme ich dieses Makro für zukünftige, vergleichbare "Zuordnungen" ...
Vielen Dank nochmals für den Hammer,- nach 1 1/2 Tagen verzweifen - das dies alles nicht nötig war :-)
Werde dennoch "Resize" studieren ...
Gruss
Fred

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige