Thema Datum  Von Nutzer Rating
Antwort
16.10.2020 19:56:52 Karl
NotSolved
Blau Probleme bei 3 Formeln
16.10.2020 20:35:49 Gast43049
Solved
16.10.2020 21:01:07 Karl
NotSolved
17.10.2020 03:05:03 Gast85228
NotSolved
17.10.2020 03:19:31 Gast85228
NotSolved
17.10.2020 07:29:42 Mase
NotSolved
19.10.2020 15:46:35 Karl
Solved
16.10.2020 21:10:42 Mase
NotSolved

Ansicht des Beitrags:
Von:
Gast43049
Datum:
16.10.2020 20:35:49
Views:
701
Rating: Antwort:
 Nein
Thema:
Probleme bei 3 Formeln

Ok, etwas muss ich jetzt mal loswerden, denn es macht mich langsam irre. ;D

Für Index-Variablen bei Schleifen ist es stark verbreitet i, j und k zu nehmen. Die drei reichen der Regel nach auch aus.

Also: (Formel 3:)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim wks1 As Excel.Worksheet
Dim wks2 As Excel.Worksheet
Dim i As Long
Dim j As Long
Dim k As Long
 
Set wks1 = Worksheets("Sheet1")
Set wks2 = Worksheets("Sheet2")
 
For i = 4 To 3951
  'Spalten in wks1
  For j = wks1.Columns("DTY").Column To wks1.Columns("FXH").Column
    'Spalten in wks2
    For k = wks2.Columns("F").Column To wks2.Columns("BCO").Column
      If wks1.Cells(j, i).Value = "100" Then
        wks2.Cells(k, i).Interior.ColorIndex = 19
      End If
    Next
  Next
Next

Falls dir das nicht übersichtlich genug ist, dann benenne die Variablen detailierter, aber sowas wie zzza, zzzb, ... ist einfach nur Kauderwelsch und hilft überhaupt nicht dabei das Makro verständlich zu halten. (was soll das heißen - 'ZeileZeileZeile A' ? hat es überhaupt einen Sinn?)

Also, alternativ: (Formel 3:)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim wks1 As Excel.Worksheet
Dim wks2 As Excel.Worksheet
Dim SpalteWks1 As Long
Dim SpalteWks2 As Long
Dim i As Long
 
Set wks1 = Worksheets("Sheet1")
Set wks2 = Worksheets("Sheet2")
 
For i = 4 To 3951
  'Spalten in wks1
  For SpalteWks1 = wks1.Columns("DTY").Column To wks1.Columns("FXH").Column
    'Spalten in wks2
    For SpalteWks2 = wks2.Columns("F").Column To wks2.Columns("BCO").Column
      If wks1.Cells(SpalteWks1, i).Value = "100" Then
        wks2.Cells(SpalteWks2, i).Interior.ColorIndex = 19
      End If
    Next
  Next
Next

Ließt man sich dieses Makro nun durch, dann kann man sofort erkennen

  • in Wks1 wird über die Spalten DTY bis FXH iteriert - Variable ist SpalteWks1
  • in Wks2 wird über die Spalten DTY bis FXH iteriert - Variable ist SpalteWks2
  • der Spalten-Index wird in der innersten Schleife als Zeilen-Index verwendet, d.h. hier scheint es sich wohl um Transponierte Daten zu handeln (oder es ist ein Fehler)
  • anhand des Zellen-Inhalts von Wks1 soll ein Farbwert in Wks2 gesetzt werden (wie gesagt, transponiert; Punkt 3)

Um dieses Makro jetzt zu verstehen, brauch ich nicht mal mehr Kommentare. (und so sollte es i.d.R. auch sein)

Das man die Spalten-Indizes sich in Variablen merken kann, war nur ein Beispiel von mir (in einer deiner ersten Beiträge hier im Forum).

Wirklich nötig ist das aber nie.


Zurück zum eigentlichen.

Wo drückt der Schuh genau? (Ich sehe hier nur drei Makro-Schnipsel)

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.10.2020 19:56:52 Karl
NotSolved
Blau Probleme bei 3 Formeln
16.10.2020 20:35:49 Gast43049
Solved
16.10.2020 21:01:07 Karl
NotSolved
17.10.2020 03:05:03 Gast85228
NotSolved
17.10.2020 03:19:31 Gast85228
NotSolved
17.10.2020 07:29:42 Mase
NotSolved
19.10.2020 15:46:35 Karl
Solved
16.10.2020 21:10:42 Mase
NotSolved