Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makroproblem

Makroproblem
27.11.2002 14:47:00
Kirsten

Hallo zusammen,

habe schon wieder ein Problem.

Dank eurer Hilfe ist dieses Makro entstanden:

Jetzt würde ich gerne in dieses Makro die beiden nachstehenden Formeln einbauen, allerdings krieg ich es mit der If-Anweisung nicht auf die Reihe. Die beiden Formeln sollen dann eingetragen werden, wenn in der entsprechende Zeile des Datenbereichs (J19:Y10000) ein Wert eingetragen wurde.

Cells(i, 58).FormulaR1C1 = "=IF(SUM(RC[-48]:RC[-33])=0,"""", INDIRECT(ADDRESS(4,MATCH(SUM(RC[-57]:RC[-33]),RC[-57]:RC[-33]))))"

Cells(i, 59).FormulaR1C1 = "=SUM(RC[-49]:RC[-34])"

Ausserdem würde ich gerne noch per Makro festlegen, das in dem Datenbereich (J19:Y10000) immer nur ein Wert pro "Zeile" eingetragen werden kann.

Bitte fehlt mir noch einmal.


Gruss
Kirsten

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makroproblem
27.11.2002 16:00:19
Yal
Aber hallo,

Was Du da fragst, ist nicht mehr Hilfe sondern AUFTRAG.
Dafür gibt es Profi, und die sind nicht umsonst teuer.

Y

Re: Makroproblem
27.11.2002 16:44:19
Kirsten
Hi Yal,

sorry, das sollte kein Auftrag sein. Aber danke, dass du mich darauf hingewiesen hast. Trotzdem brauch man ja nicht gleich zickig werden, oder?

Ich dachte nur, irgendjemand könnte mir einen Ansatz liefern. Habe hier im Forum schon unendlich viele gute Tips erhalten.


Gruss
Kirsten

Re: Makroproblem
27.11.2002 17:25:38
Klaus-Dieter
Hallo Kirsten,

ich frage mich, warum Du per Makro Zellformeln eintragen möchtest. Es wäre ja auch möglich, und wie ich meine eleganter, die Berechnungen gleich vom Makro ausführen zu lassen.

Gruß Klaus-Dieter
Klaus-Dieter's Excel und VBA Seite

Anzeige
Re: Makroproblem
27.11.2002 17:36:17
Kirsten
Hallo Klaus-Dieter,

schön mal wieder von Dir zu hören :-)

Die Anwort auf deine Frage ist ganz einfach: ich kann es nicht. Stecke da noch ganz in den Anfängen und bin froh, wenn ich so halbwegs nachvollziehen kann, was die Profis hier so anbieten, um es dann auf meine Bedürfnisse umzustricken.

Mit dieser Datei gehe ich noch ordentlich baden. Ansich hätte ich am liebsten alles mit Formeln gelöst, weil da kenne ich mich recht gut aus. Aber bei der riesigen Datenmenge, die da verarbeitet werden soll, dachte ich Makros würden helfen.

Gruss
Kirsten

P.S.: Ich hampel hier immer noch mit der gleichen Datei rum, die ich dir auch schon mal geschickt habe. Da du dich nicht mehr gemeldet hast, habe ich mittlerweile versucht, einige Probleme auf anderem Weg zu lösen.

Anzeige
Re: Makroproblem
27.11.2002 20:38:33
Udo RiHü
Hallo Kirsten,
is dat waahh??? Du haust dir dein ganzes Blatt voller Formel, fängst dir dicke Probleme mit ständigen Neuberechnungen ein, von Reaktionen auf alle möglichen Ereignisse ganz zu schweigen, weil du nicht weisst, wie man die Werte in VBA berechnet und in Zellen einträgt? Ich sehe das jetzt mal so, dass du die Werte nicht dynamisch brauchst, weil die Zeile, wenn einmal gefüllt, so stehen bleiben soll. Oder ändert sich da ständig was?
Wenn die Zeilen statisch sind, kannst du die doch viel besser über eine Userform füllen. Selbst wenn du dein jetziges Verfahren mit Change-Ereignissen beibehältst, ist es sinnvoller, die Werte der Berechnungen in die Zellen einzutragen. Dann bist du wenigstens die Formeln los.

Gruss Udo

Anzeige
Re: Makroproblem
27.11.2002 22:08:33
Udo RiHü
Hallo Kirsten,
hier vielleicht die Lösung für deine vielen Formeln:

Mit meinem kleinen Zusatz wird die Zeile kopiert und als Inhalt an der gleichen Stelle wieder eingefügt. Damit hast du keine Formeln mehr. Evtl. musst du das auch vor dein End If einfügen, damit wirklich alle Formeln in der aktuellen Zeile eliminiert werden. Dann wird auch nicht mehr ständig alles neu berechnet.
Wichtig ist auch immer, die Bildschirmaktualisierung abzuschalten. Dann läuft's erheblich schneller.

Gruss Udo

Re: Makroproblem
28.11.2002 11:09:14
Kirsten
Hi Udo,

vielen lieben Dank für deine Antworten.

Habe deinen "kleinen Zusatz" ausprobiert. Wäre auch sehr schön, wenn die Daten wirklich nur einmalig eingegeben würden. Da sie aber auch korrigiert werden können, müssen sich auch die Formeln aktualisieren. Echt schade, hätte sicherlich auch meine Dateigrösse wieder etwas runtergeschraubt.

Und ... ja, es ist tatsächlich wahr, dass ich die ganze Tabelle mit Formeln vollhaue. Ich weiss, ich bin ein VBA-Looser :-(
Aus diesem Grunde habe ich ja auch schon so ca. hunderttausendmal meine Tabelle und die diversen Makros hier ins Forum gesteckt, weil ich dachte, ihr VBA-Götter wüsstet evtl. effektivere Lösungen. So Antworten, wie von Yal sind da natürlich nicht sehr hilfreich, da man als VBA-Anfänger überhaupt keine Ahnung hat, was überhaupt möglich ist und vor allen Dingen, wie man es am besten anpasst bzw. mit wieviel Aufwand so etwas ggf. verbunden ist.
Also stückel ich mir alles zusammen, was ich hier im Forum aufschnappe oder im Archiv finde. Habe mir schon die wirklich tollen Seiten von Klaus-Dieter zu Gemüte geführt, nur ist es in so kurzer Zeit nicht möglich, daraus Makros mit all ihren Feinheiten zu erstellen, sondern immer nur Stück für Stück dazuzulernen.

Also noch mal lieben Dank (auch für deine Geduld) ;-)


Gruss
Kirsten

Anzeige
Re: Makroproblem
28.11.2002 14:32:56
GerdZ
Hallo Kirsten,

mit der Summenformel in der Bedingung der Wenn-Funktion kann man auch die Prüfung auf nur ein Wert realisieren.
Dies könnte z.B. so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("J19:Y10000")) Is Nothing Then
        Zeile = Target.Row
        If Application.Evaluate("=Sum(J" & Zeile & ":Y" & Zeile & ")") _
            <> Target.Value Then
            MsgBox "in dieser Zeile steht bereits ein Wert"
            Target.Value = Null
            Exit Sub
        End If
    End If
End Sub

Gruß
Gerd

Anzeige
Re: Makroproblem
28.11.2002 14:51:14
Kirsten
Hallo Gerd,

vielen lieben Dank für den Code.

Nur bin ich mir nicht so sicher, wo ich ihn in meinem Code plaziere. Das Problem habe ich jetzt schon ein paar Mal gehabt, da ich mich mit den Verschachtelungen überhaupt nicht auskenne.

Hast Du vielleicht dazu noch einen kleinen Ansatz für mich.

Gruss
Kirsten

Re: Makroproblem
28.11.2002 15:11:22
GerdZ
den Code mußt Du vor der ersten "If" oder nach der letzten "End If"-Zeile einfügen, z.B.:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    ActiveSheet.Unprotect Password:="passwort"
    If Not Intersect(Target, Range("J19:Y10000")) Is Nothing Then
        Zeile = Target.Row
        If Application.Evaluate("=Sum(J" & Zeile & ":Y" & Zeile & ")") _
            <> Target.Value Then
            MsgBox "in dieser Zeile steht bereits ein Wert"
            Target.Value = Null
            Exit Sub
        End If
    End If
    If Target.Column = 2 Then
und der Rest von Deinem Code


Gruß
Gerd

Anzeige
Re: Makroproblem
28.11.2002 15:28:44
Kirsten
Danke noch mal!

Nur leider hat sich jetzt irgendwie was aufgehangen. Nichts geht mehr.

Die MsgBox lässt sich nicht mehr anklicken und das Makro kann ich auch nicht stoppen?????


Gruss
Kirsten

Re: Makroproblem
28.11.2002 15:55:49
GerdZ
Sorry,
da habe ich leider eine Endlosschleife produziert.
Abbrechen läßt sie sich mit Strg+Pause.
Erweitere die If-Abfrage:
If Not IsEmpty(Target.Value) And Not Intersect....

Gruß
Gerd

Re: Makroproblem
28.11.2002 16:49:56
Kirsten
Juhu!!!! Klappt super!

Vielen herzlichen Dank.


Gruss
Kirsten

P.S.: Wenn ich meine beiden zusätzlichen Formeln noch einfügen will, funktioniert das auf die gleich Weise?

Anzeige
Re: Makroproblem
28.11.2002 17:47:17
GerdZ
Wann sollen die Formeln eingetragen werden?
Immer wenn eine Eingabe im Bereich J19:Y10000 erfolgt?
Dann im gerade eingefügten Teil, zwischen den Zeilen
"Exit Sub" und "End If" eine neue Zeile mit "Else" und die zwei Zeilen mit den zusätzlichen Formeln einfügen.

Gruß
Gerd

Re: Makroproblem
29.11.2002 10:28:26
Kirsten
Hi Gerd,

die Formeln sollen - wie du schon richtig vermutet hast, eingetragen werden, wenn eine Eingabe/Änderung in dem Bereich J19:Y10000 erfolgt. Funktioniert aber leider nicht wirklich. Passiert irgendwie gar nichts? Habe mein Makro wie folgt angepasst:

Die Formeln sind richtig. Haben zumindest vorher solo funktioniert.

Hast Du eine Idee, woran es hapert?


Gruss
Kirsten

Anzeige
Re: Makroproblem
29.11.2002 13:42:58
GerdZ
Die Zeilennummer der gerade geänderten Zelle steht in diesem Programmteil in der Variablen Zeile. Die Variable i hat an dieser Stelle keinen Wert.
Ersetze noch die beiden "Cells(i, ..." durch "Cells(Zeile, ..."

Re: Makroproblem
29.11.2002 13:57:31
Kirsten
Oooohhhhh wie schöööööön!

Jetzt funktioniert alles bestens!


Herzlichen Dank noch mal.

Gruss
Kirsten

Re: Makroproblem
30.11.2002 14:19:48
Klaus-Dieter
Hallo Kirsten,

ich habe mal ein Makro für Deine Tabelle geschrieben, das die Aufteilung des Datums durchführt. Der Teil für die Kalenderwoche stammt nicht von mir, das habe ich mal bekommen. Mit dieser Lösung sparst Du in Deiner Tabelle schon mal 40000 Zellformeln! Die anderen Formeln setze ich Dir auch noch um, bitte Geduld, den Grund kennst Du ja ;-).

Gruß Klaus-Dieter
Klaus-Dieter's Excel und VBA Seite

Anzeige
Re: Makroproblem
02.12.2002 17:52:03
Kirsten
Hi Klaus-Dieter,

das ist ja einfach genial!!!!!! :-)))))

Kann ich das Makro auch so anpassen, dass wenn ich zusätzlich ein Datum in Spalte 39 eintrage, dieses ebenfalls in den Spalten 40-43 adäquat aufgeteilt wird. Und das gleiche Spiel dann noch mal in der Spalte 45 (Ausgabe dann in den Spalten 46-49)?

Was würde ich nur ohne dich tun !!!!!
Ich kann dir nur immer wieder danken.


Bis bald also
Kirsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige