Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro: Zählen der Einträge in einer Spalte und Ausgabe der Summe in Kombination mit Text





Frage

Folgender Wunsch besteht: In einem Makro soll u.a. die Anzahl der Einträge der Spalte A (Zeile 3 bis 1000) gezählt werden und in der Zeile 1 (der Spalte A) zusammen mit einem Text (z.B. "Anzahl der Einträge") ausgegeben werden. Dies gelingt mir nicht zu programmieren. Folgendes habe ich erreicht: Anzeige des Ergebnis in Zeile 1 mittels folgender Skript-Programmierung: Worksheets(1).Range("A1").Formula = "=COUNTA(R[2]C:R[1000]C)" Bemerkung: hier wird nur die Anzahl in die Zelle A1 eingetragen. Eine Verrechnung im Makro bzw. Definition einer Variablen ist mir nicht möglich. Anzeige der Einträge: Worksheets(1).Range("A1").Value = "Anzahl der Einträge: " Bisher noch erreichtes Ziel ist: Worksheets(1).Range("A1").Value = "Anzahl der Einträge: " & ...Anzahl der Einträge... Vielen Dank im Voraus

Antwort 1 von nighty

hi jochen :)

wie gewuenscht :)

gruss nighty

Sub suchen()
Dim Zelle1 As Range
Dim zaehler1 As Integer
Dim letzte As Integer
With Worksheets(1)
letzte = .Range("A1000").End(xlUp).Row
For zaehler1 = 3 To letzte
SumAlle = SumAlle + Cells(zaehler1, 1)
Next

rem deine ausgabe
rem text wie pos anzupassen
rem anfuegen eventuellen zeilenvorschub
rem  & chr$(10)

Cells(1, 1) = "Gesamtsumme der eintraege " & Str(SumAlle)
Cells(1, 3) = "Anzahl der eintraege " & Str(SumAlle)
End With
End Sub


Antwort 2 von nighty

hi alle :)

sollte mal ein makro fehlerfrei sein geb ich ein aus :)

gruss nighty

korrigiert grrrr

Sub suchen()
Dim Zelle1 As Range
Dim zaehler1 As Integer
Dim letzte As Integer
With Worksheets(1)
letzte = .Range("A1000").End(xlUp).Row
For zaehler1 = 3 To letzte
SumAlle = SumAlle + Cells(zaehler1, 1)
Next

rem deine ausgabe
rem text wie pos anzupassen
rem anfuegen eventuellen zeilenvorschub
rem  & chr$(10)

Cells(1, 1) = "Gesamtsumme der eintraege " & Str(SumAlle)
Cells(1, 3) = "Anzahl der eintraege " & Str(letzte)
End With
End Sub


Antwort 3 von Jochen

Hallo nighty,

erst einmal vielen Dank für Deine Antwort.
Ich werde mir Dein Makro mal vornehmen und bei Problemem noch einmal melden.

Antwort 4 von Jochen

Hallo nighty

willst Du einen ausgeben ?

Dein Makro zählt nicht korrekt die Anzahl der Einträge. Macht aber nichts, da ich das Makro trotzdem sehr gut gebrauchen kann. Folgende Änderung habe ich durchgeführt (3. Zeile von unten):

Sub suchen()
Dim Zelle1 As Range
Dim zaehler1 As Integer
Dim letzte As Integer
With Worksheets(1)
letzte = .Range("A1000").End(xlUp).Row
For zaehler1 = 3 To letzte
SumAlle = SumAlle + Cells(zaehler1, 1)
Next

Rem deine ausgabe
Rem text wie pos anzupassen
Rem anfuegen eventuellen zeilenvorschub
Rem & chr$(10)

Cells(1, 1) = "Gesamtsumme der eintraege " & Str(SumAlle)
Cells(1, 3) = "Anzahl der eintraege " & Str(letzte - 2)
End With
End Sub


Antwort 5 von nighty

hi Jochen :)

ups vergessen :)

faengt ja bei drei an :)

aber du kennst dich ja auch schon gut aus ,fehler auf anhieb lokalisiert :))

gruss nighty

p.s.
viel spass dann noch beim tuefteln :))

Antwort 6 von Knubbel

Hallo Jochen,

du hast zwar nach einem Makro gefragt, welches deine Aufgabe lösen soll, aber:
warum einfach, wenn es auch kompliziert geht?

Mein einfacher Vorschlag:
Schreibe in die Zelle A1 folgende Formel

="Summe der Einträge: "&TEXT(ANZAHL(A3:A1000);0)

und du erhälst dein Ergebnis angezeigt.

(nichts gegen die VBA-Programmierer)

mfg Knubbel



Antwort 7 von Jochen

Hallo Knubbel

im Prinzip hast Du völlig recht. Aber:
die o.g. Programmierung ist nur ein kleiner Baustein in einem relativ großem (und zum Teil schon unübersichtlichen) Makro und mit dem Einbau in dem Makro bin ich nicht gezwungen, darauf zu achten, in welche Zelle ich die Meldung bringe bzw. ich kann bei der Programmierung frei bestimmen, in welche Zeile ich die Meldung setze. Ich habe es mir lange überlegt, wie ich es machen soll. Meine "nicht-VB-Lösung" war bzw. ist:
="Die Anzahl der Fragen im Fragenkatalog beträgt "&ANZAHL2(A3:A65536)&"."
Nichtsdestotrotz vielen Dank für Deinen Hinweis, den ich gerne zu meinen Unterlagen nehme (wie übrigens viele Hinweise aus diesem Forum, das ich überaus zu schätzen gelernt habe).

Antwort 8 von Knubbel

Hi Jochen,

habe deine Wunschvorstellung nicht richtig realisiert. Für deine Lösung ist sicher ein VBA-script besser.

Ich habe aber dennoch eine Frage:

In deiner nicht-VBA-Lösung hast du ...ANZAHL2... aufgeführt, was zum gleichen Ergebnis führt wie mein Vorschlag ..TEXT(Anzahl....

Wo her hast du diese Excel-Formel? In der online-Hife habe ich dies nicht gefunden. Ich finde diese Lösung ideal.

mfg Knubbel



Antwort 9 von Jochen

Hallo Knubbel,

"try and error" unter Berücksichtigung von Lösungsvorschlägen aus diesem oder anderen Foren bzw. Hilfe-Datei von Ecxel. So genau weiß ich das nicht mehr. Ich schreibe mir solche Tipps immer auf und schaue bei Problemen erst einmal in meiner eigenen "Datenbank" nach, suche dann in der Hilfe-Datei oder im Internet und probiere einfach aus. Dabei lerne ich am meisten.

Antwort 10 von Knubbel

Hi Jochen,

klasse!!

Ich hab es nie geschafft, mir eine solche "Datenbank" anzulegen. Aber ich finde, wie du, dass Hilfen aus Foren wie z.B. SN einen gewissen Lerneffekt bringen.
Ich jedenfalls habe hier mehr erfahren, als durch die üblichen Programmbeschreibungen.

Dein "try and error" ist auch meine Philosophie.

mfg Knubbel