Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1032to1036
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 für Zelle gesucht

Makro für Zelle gesucht
20.12.2008 16:51:50
Fred
Hallo alle zusammen
Ich habe da mal wieder ein Problem was für mich nicht lösbar ist. In meiner Arbeitsmappe habe ich ca 50 Sheets die von der Strucktur gleich sind, aber der Inhalt bezieht sich auf unterschiedliche Personen. Ich möchte jetzt gerne die Zelle M4 in allen Sheets überwachen, und den Darin enthaltenen Wert zusammenzählen. Der Wert Kann ein A oder ein B usw. sein. ( Wert geht von A bis H) das Ergebniss soll dann aber in Tabelle1 eingetragen werden und zwar in A1 die Summe aller A ;
in B1 die Summe aller B usw.
Leider werden die Werte über eine Formel in die Zelle M4 geschrieben, so das ein selekt change soviel wie ich weis nicht in Frage kommt.
Leider kenne ich mich in VBA nicht so aus , ich hoffe das mir jemand von euch helfen kann.
Grüße Fred

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vielleicht doch ohne VBA
20.12.2008 19:16:00
Fred
HalloWalter
Das sieht ja sehr gut aus. Werde mal probieren ob ich das umsetzen kann. Falls noch jemand eine VBA lösung hat lasse ich mal offen
Fred
AW: vielleicht doch ohne VBA
20.12.2008 19:36:45
Fred
Hallo ich bin es nochmal
Ich habe gerade Werners Formel versucht, aber ich habe vergessen zu erwähnen das einige Tabellen auch Namen haben wie Fred Karll usw und die Tabellen sind natürlich auch im Namen veränderbar. Leider Funktioniert dann die Formel nicht mehr, und wie gesagt das Workbook beinhaltet ca 50 einzelne Sheets
deshalb würde ich mich über eine VBA Lösung sehr Freuen
Grüße Fred
Anzeige
AW: vielleicht doch ohne VBA
20.12.2008 21:05:25
Uwe
Hi Fred,
dieser Code würde alle Blätter außer dem aktiven abfragen und im aktiven Blatt die Eintragungen in A1 bis H1 vornehmen (hoffe ich (8-), teste mal ausgiebig).

Sub Zaehlen()
Dim ws As Worksheet
Dim strStartblatt As String
strStartblatt = ActiveSheet.Name
With Sheets(strStartblatt)
For Each ws In Worksheets
If Not ws.Name = .Name Then
Select Case ws.Range("M4").Value
Case "A"
.Range("A1").Value = .Range("A1").Value + 1
Case "B"
.Range("B1").Value = .Range("B1").Value + 1
Case "C"
.Range("C1").Value = .Range("C1").Value + 1
Case "D"
.Range("D1").Value = .Range("D1").Value + 1
Case "E"
.Range("E1").Value = .Range("E1").Value + 1
Case "F"
.Range("F1").Value = .Range("F1").Value + 1
Case "G"
.Range("G1").Value = .Range("G1").Value + 1
Case "H"
.Range("H1").Value = .Range("H1").Value + 1
End Select
End If
Next
End With
End Sub


Man könnte Ihn über das Workbook_SheetCalculate Ereignis aktivieren (dabei die Zeile strStartblatt = ActiveSheet.Name durch einen festen Namen ersetzten). Dann läuft das Makro allerdings bei jeder Berechnung und bremst.
Vielleicht wäre es aber auch möglich das Ereignis abzufragen, dass zum Neuberechnen der Formeln führt. Also: Was steht in den Formel, kann man da vielleicht ansetzen?
Gruß
Uwe
(:o)

Anzeige
AW: vielleicht doch mit VBA
20.12.2008 20:55:00
Erich
Hallo Fred,
probier mal (in ein allg. Modul):

Option Explicit
Sub M4Zaehler()
Dim wks As Worksheet, ii As Integer, arrE(1 To 9) As Integer
For Each wks In Worksheets
If wks.Name  "Tabelle1" And _
Not IsEmpty(wks.Cells(4, 13)) And _
Len(wks.Cells(4, 13)) = 1 Then
ii = Asc(wks.Cells(4, 13)) - 64
If ii  8 Then ii = 9
arrE(ii) = arrE(ii) + 1
End If
Next
Application.EnableEvents = False
Worksheets("Tabelle1").Cells(2, 1).Resize(, 9) = arrE
Application.EnableEvents = True
End Sub

In Spalte I wird die Anzahl (nichtleerer) Einträge ausgegeben, die keiner der Buchstaben entsprechen - könnte ja auch interessant sein.
Bezüglich der Überwachung kommt es jetzt darauf an, wovon die Werte in M4 abhängen.
Hier geh ich mal davon aus, dass M4 von M1 abhängt.
Die folgende Routine gehört in das Modul "DieseArbeitsmappe"


Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
' wenn die Änderung von M45 z. B. in Zelle M1 ausgelöst wird:
If Sh.Name  "Tabelle1" Then
If Target.Address = "$M$1" Then
M4Zaehler
End If
End If
End Sub

Beides geht jetzt mal davon aus, dass die Ergebnisse in Tabelle1 geschrieben werden
und diese Tabelle nicht überwacht/mitgezählt wird.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige