Ich arbeite derzeit an dem folgenden Code, der alle Registerkarten in einer Excel-Arbeitsmappe durchsucht, alle Währungen auswählt, die einen bestimmten Schwellenwert in einer definierten Spalte "J" überschreiten, und wenn die Kriterien erfüllt sind Die Währung, die größer als der Schwellenwert ist, wird in eine neu erstellte Registerkarte mit der Bezeichnung "Zusammenfassung" eingefügt.Eingabefelder einfügen, die Code interaktiver machen
Jetzt ist meine Frage: 1. Gibt es eine Chance, diesen Code interaktiver zu machen? Ich möchte ein Eingabefeld hinzufügen, in dem der Benutzer seinen Schwellenwert eingibt (in meinem Beispiel 1000000), und dieser Schwellenwert wird zum Durchlaufen aller Registerkarten verwendet. 2. Es wäre toll, ein Eingabefeld wie "Spalte mit Währung auswählen" zu erhalten, da Spalte "J" nicht immer gesetzt wird, sondern auch eine andere Spalte ("I", "M" usw.) Dies wird dann für alle Blätter gleich sein. 3. Jede Möglichkeit, bestimmte Blätter innerhalb der Arbeitsmappe auszuwählen (STRG + "Blatt" "Blatt" usw.), die dann in meine Schleife eingefügt werden und alle anderen werden vernachlässigt?
Jede Hilfe, besonders für meine Probleme in Frage 1 und 2 wird geschätzt. Frage 3 wäre nur ein „nice-to-have“ Ding
Option Explicit
Sub Test()
Dim WS As Worksheet
Set WS = Sheets.Add
WS.Name = "Summary"
Dim i As Long, j As Long, lastRow As Long
Dim sh As Worksheet
With Sheets("Summary")
.Cells.Clear
End With
j = 2
For Each sh In ActiveWorkbook.Sheets
If sh.Name <> "Summary" Then
lastRow = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
For i = 4 To lastRow
If sh.Range("J" & i) > 1000000 Or sh.Range("J" & i) < -1000000 Then
sh.Range("a" & i & ":n" & i).Copy Destination:=Worksheets("Summary").Range("A" & j)
Sheets("Summary").Range("N" & j) = sh.Name
j = j + 1
End If
Next i
End If
Next sh
Sheets("Summary").Columns("A:N").AutoFit
End Sub
Wie es aussieht, dies zu breit ist. Sie haben 3 Fragen, die separat gestellt werden sollten. Versuchen Sie, Ihren Code zu ändern, um die erste Frage zu beantworten. Wenn Sie erfolgreich sind, fahren Sie mit dem nächsten Schritt fort. Wenn die versuchte Änderung nicht funktioniert, posten Sie diese spezifische Frage einschließlich der Fehlermeldungen oder unerwünschten Verhaltens. –
Sie können Recht haben, ich werde diesen Ansatz versuchen. –
Sie haben zwei mögliche Teilantworten. Selbst wenn sie richtig sind, werden sie wahrscheinlich nicht von einem Benutzer gesehen, der nach "Blattschleife auf bestimmte Blätter begrenzen" oder "Blätter zum Durchlaufen auswählen" sucht. Kurze, prägnante Fragen mit klaren Titeln werden für Sie und die SO-Community funktionieren. –