Registerfarbe aufgrund von Zellwert einfärben (Excel)?

Ich arbeite grade für eine Kollegin an einer Excel-Tabelle (Excel 2010). Sie wünscht sich nun, dass sich unter einer bestimmten Bedingung die Farben der Registerblätter automatisch ändern. Ich habe dafür die gesamte Tabelle schon soweit vorbereitet, dass eine Formel mir bereits die entsprechende Bedingung ausliest und ausgibt.

Ich gehe dabei jetzt mal ins Detail: In allen Tabellenblätter gibt das Feld J19 mir einen Wert, der entweder =0 oder >0 ist. Bei =0 soll sich der Registername rot färben, bei >0 grün.

Natürlich habe ich Google dazu schon befragt, und mir ist mittlerweile klar, dass sich das mithilfe eines Makros machen ließe. Allerdings liegt genau hier das Problem: Ich habe noch nie mit Makros gearbeitet, schon gar nicht welche geschrieben. Ich weiß mittlerweile wie ich auf die Entwicklertools komme, und wie ich das "Makros"-Fenster öffne. Allerdings habe ich auch nach mehreren (Copy&Paste aus dem Netz) Versuchen es nicht geschafft, dass mir in dem entsprechenden Dialog ein Makro zum Ausführen angezeigt wurde.

Ich bräuchte also eine genaue Anleitung, wo ich was eintragen muss. Ich habe die Tabelle extra so gestaltet, dass der Wert mir in jedem Tabellenblatt im selben Feld ausgegeben wird.

Was ich bislang nicht rausgefunden habe: Läuft das Makro immer automatisch? Oder muss man es immer wieder neu aktivieren? Das wäre nämlich kontraproduktiv, denn die Tabelle soll weitergegeben werden und das Einfärben der Register soll eine "Kontrollfunktion für Dummies" darstelen. Wenn es also jedes Mal aktiviert werden muss, wäre es sinnlos.

Ich hoffe sehr, dass mir jemand helfen kann.

Vielen Dank im Voraus!

Microsoft Excel, Makro, Funktion
Was muss man in Excel eingeben, damit das Datum nicht aktualisiert wird?

Hallo, ich habe wieder eine Excel Frage: ich habe eine Tabelle, Spalten A-H. In der Spalte G habe ich den Status, wo ich eine DropDown-Liste habe und zwischen: "in Bearbeitung", "Material bestellt", [...], "erledigt" auswählen kann. In Spalte H habe ich als Überschrift "erledigt am", es soll also in Spalte H, sobald ich in Spalte G den Status "erledigt" ausgewäht habe, das aktuelle Datum erscheinen. Ich habe also in Spalte H folgende Formel: "=WENN(G50="erledigt";TEXT(JETZT();"TT.MM.JJ");"")". Ich glaube, ihr wisst, worauf ich hinaus wil, also nach dem Speichern soll dich das Datum nicht ändern, tut es aber natürlich. (Ist ja klar!) Aber, da ich erst seit ein paar Monaten mit Excel arbeiten, habe ich noch keine Ahnung. Durch das Stöbern im Internet, habe ich rausgefunden, dass es nicht einfach so funktioniert (oder doch?), sondern, dass man dafür ein Makro braucht (wovon ich absolut keine Ahnung habe). Also so weit bin ich: ich habe die Tabelle offen vor mir, ich klicke auf den Tabellen-Namen und klicke auf "Code anzeigen", dann öffnet sich ja ein Makro Fenster. So, was soll ich nun machen? Ihr wisst ja, welche Spalte ich brauche, es wäre schön einen Code zu haben. :-) Und wenn ich da den Code eingefügt habe, was muss ich dann machen? Ich würde dann auf "speichern" klicken, dann öffnet er ja ein Fenster und weist mich darauf hin, dass ich die Datei als eine Mappe mit Makros speichern muss. Richtig? Dann würde ich das tun. Und dann wenn ich das gespeichert habe, müsste ich die Makros (-> "Inhalt aktivieren") jedes Mal, wenn ich die Datei öffne anklicken, oder? und dann habe ich das, was ich will. Bitte helft mir, ich verzweifle so langsam...

Microsoft Excel, Spalten, Befehle, Makro, VBA, ändern, aktuell, Code, Datum
Wie kann ich bei Excel einen Button erstellen der abspeichert?

Hallo,

Ich würde gerne bei Excel einen Button erstellen, der die Excel mappe auf dem Desktop abspeichert. Der Name der Datei soll in Zeile A1 stehen.

Den Button habe ich bereits erstellt. Ich scheitere noch bei dem Makro, weil ich keine ahnung davon habe. Ich habe etwas im Internet gefunden, was meinen Vorstellungen nahe kommt. Ich habe versucht es anzupassen, aber irgendwie klappt das alles nicht.

Sub Schaltfläche1_Klicken()
Dim lw_pfad As String
lw_pfad = ActiveSheet.Range("A1").Value
lw_pfad = InputBox("Geben Sie hier das Laufwerk und den Pfad an, wo die Datei gespeichert werden soll." & Chr(13) & Chr(13) & "(Ihre Eingabe wird in A1 als neuer Default-Wert gespeichert.)", "Datei speichern unter...", lw_pfad)
If lw_pfad = "" Then
  MsgBox "Die Datei wird nicht gespeichert, da Sie [Abbrechen] gedrückt oder nichts eingegeben haben.", , "Abbruch"
  Exit Sub
Else
  If Right(lw_pfad, 1) <> "\" Then lw_pfad = lw_pfad & "\"
  ActiveSheet.Range("A1").Value = lw_pfad
Rem MsgBox lw_pfad
ActiveWorkbook.SaveAs lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls"
MsgBox "Die Datei wurde unter " & lw_pfad & ActiveSheet.Range("B2").Value & ActiveSheet.Range("C4").Value & ".xls gespeichert.", , "OK"
End If
End Sub

Das ist, was ich bis jetzt habe.

Vielen Dank für die Hilfe im Voraus!

Computer, Microsoft, Microsoft Excel, Excel 2010, Technik, Programm, programmieren, Makro, VBA, Technologie, Spiele und Gaming
Wie kann ich in Excel viele Zellen einer Spalte miteinander verketten/ Gibt es die Möglichkeit bestimmte Bereiche automatisch zu einer Zelle zusammenzufügen?

Hallo, ich habe eine extrem lange Liste bestehen aus zwei Spalten. In Spalte A sind Zahlen und in Spalte B sind Wörter.

Frage 1: Wie kann ich bestimmte Bereiche in eine Zelle zusammenfügen; am besten durch Komma getrennt. Was ich bislang gefunden habe erscheint mir etwas kompliziert: VERKETTEN(MTRANS(B1:B67)) Dann kommt da sowas raus: {"Nähe"."Nu"."Uni"."Hahn"."Neue"."Huhn"."On"."Yen"."Nahe"."Hohn"."Ion"."Henne".} Hier mache ich nun mit Ersetzen die Anführungszeichen und die Klammern weg und aus dem Punkt ein Komma mit Leerzeile. Geht das nicht irgendwie noch leichter?

Frage 2: Könnte man auch gleich befehlen, dass alle Wörter, denen in Spalte A die gleiche Zahl zugeordnet ist, in einer Zelle zusammengefasst werden?

So sieht das ganze etwa aus:

A B

1 Eid

1 Hoheit

1 Hit

1 Heute

2 Huhn

2 Henne

3 Mühe

3 Oma

3 Heim

usw. Die Liste hat an die 270.000 Einträge (Zeilen). Die Zahlen in Spalte A gehen bis 99999. Daher sollte so viel wie möglich automatisch laufen. Denn fast einhunderttausend Einträge (so wie ich es bislang von Hand mache) zu ändern ist der Horror ... Ein Freund sagte mir, ich brauche wahrscheinlich ein Makro. Allerdings habe ich überhaupt keine Ahnung wie ich das verwende. Daher bitte ich um eine ausführliche Erklärung und hoffe, dass ich nicht zu viel verlange...

Vielen vielen lieben Dank schonmal. Ich hoffe und freue mich auf Antworten

Microsoft Excel, Makro
Wie kann ich bei VBA nach mehreren Kriterien in einer Zeile suchen?

Hallo zusammen.

Ich hab leider nix gescheites zu meiner Problemstellung gefunden, deshalb frage ich jetzt einfach mal direkt nach: Ich möchte in einer großen Tabelle nach mehreren Kriterien in der ersten Zeile suchen. In dieser Zeile sind Überschriften (aus einer .xml übernommen). Leider wiederholen sich die Überschriften ab und an, allerdings mit den unterschiedlichsten Ziffern als Anhängsel (zb AKMKaufteile, AKMKaufteile5, AKMKaufteile324...). Das wäre jetzt aber noch kein Problem, da ich ja normalerweise eh nur nach Teilen des Wortes suche. Ich habe allerdings auch Überschriften die ziemlich ähnlich sind und mit als Treffer gewertet werden so wie ich das mache (zb AKMKaufteileD34, AKMKaufteileB412... also immer entweder das D oder das B mit da drin, und diese Spalten brauche ich nicht).

Zusammengefasst möchte ich einfach nur die erste Zeile nach AKMKaufteile (das ohne D und B) suchen und auch die Zellen/Spalten haben, wo die Ziffern angehängt sind; es handelt sich dabei um Preise, bei D ist das Datum und B der Benutzername angegeben, letztere beiden sind uninteressant).

For i = 1 To 1000
   If InStr(1, Cells(1, i).Value, "AKMKaufteile") > 0 And InStr(1, Cells(1, i).Value, "AKMKaufteileB*") = 0 And InStr(1, Cells(1, i).Value, "AKMKaufteileD*") = 0 Then
      For j = 1 To 300
         If InStr(1, Cells(j, i).Value, "") > 0 Then
             Cells(j, i).Activate
              ActiveCell.Copy Destination:=Worksheets("Ergebnis").Cells(j, 10).Offset(1)
         End If
      Next j
         
   End If
Next i

(So klappt es leider nicht)

Vielen Dank für jeden Tipp der mich weiterbringt ::)

Gruß

Jan

Microsoft Excel, Filter, Makro, VBA
Excel VBA: Tabellenblätter bei gewissen Zellenwert ausblenden?

Hallo Zusammen,

Ich will mittels VBA ein Excel modifizieren, damit möglichst wenige Tabellenblätter angezeigt werden. In einem Tabellenblatt (z.B. "Auswahl") habe ich die Zellen C62, C88 und C114, die jeweils ein spezielles Tabellenblatt anzeigen sollen. Jedoch gibt es im Moment nur LZF-Meldungen.

Es soll jeweils bei "Yes" nichts angezeigt, bei "No" die entsprechende Tabelle eingeblendet werden.

Ansonsten sollen die "nicht betroffenen" Tabellen ausgeblendet bleiben

Hier der Code im Worksheet "DieseArbeitsmappe":

Private Sub Worksheet_Open()

'Beim Öffnen des Excels die betroffenen Blätter ausblenden
    ThisWorkbook.Worksheets("Tabelle4").Visible = False 
    ThisWorkbook.Worksheets("Tabelle5").Visible = False
    ThisWorkbook.Worksheets("Tabelle6").Visible = False
    
End Sub

In Blatt "Auswahl" (Tabelle7) habe ich folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)

   

‘Hier sind vorher noch andere IF-Regeln hinterlegt, die nur Reihen in Tabelle7 ein/ausblenden

   

    If Range("C62").Value = "No" Then 'Tabellenblätter einblenden, sobald in der jeweiligen Zelle "No" ausgewählt wird

        ThisWorkbook.Worksheets("Tabelle6").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle6").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

    If Range("C88").Value = "No" Then

        ThisWorkbook.Worksheets("Tabelle5").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle5").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

    If Range("C114").Value = "No" Then

        ThisWorkbook.Worksheets("Tabelle4").Visible = True

       

        Else

        ThisWorkbook.Worksheets("Tabelle4").Visible = False ‘Hier erhalte ich jeweils ein LZF 9?

    End If

   

End Sub

Weshalb gibt es jeweils einen Fehler und wie kann ich diesen am einfachsten beheben?

Vielen Dank, Michael

Microsoft Excel, programmieren, Makro, VBA