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:
506
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:)

  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:)

  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