Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2002] Zellen per Makro Formel zuweisen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 16.05.2008, 23:36 Nach oben

Hallo,
habe folgende Formel in U2 stehen:

=WENN(W2="";"";(R2&S2&"-"&T2))

Wie stelle ich es an, dass diese Formel per Makro automatisch in die Zelle U2 geschrieben wird, wenn in W2 und fortlaufend was drinsteht. Ansonsten soll die Zelle U2 ohne Inhalt/leer bleiben

If Range("W2:W1000") = "" Then
???
Else
???

Und natürlich für alle anderen Zellen in der Spalte fortlaufend:

=WENN(W3="";"";(R3&S3&"-"&T3))
=WENN(W4="";"";(R4&S4&"-"&T4))
usw.

Gruß Timi
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 16.05.2008, 23:56 Nach oben

Hallo!

Reicht es nicht, wenn in die Zellen die entsprechenden Werte eingetragen werden, oder wozu brauchst du die Formel?
Die WENN-Abfrage kannst du dir ja eh sparen, denn das wird ja schon durch den Code abgefragt.
Code:
Sub test()
Dim i As Integer
For i = 2 To 1000
If Not IsEmpty(Cells(i, 23)) Then Cells(i, 21) = _
Cells(i, 18) & Cells(i, 19) & "-" & Cells(i, 20)
Next i
End Sub

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 17.05.2008, 00:36 Nach oben

Hallo und sei gegrüßt!

Das Problem ist die Eingabemaske, die Du, wie ich mittlerweile weiß, sehr liebst!
Laughing

Wenn die Formeln bereits in den Zellen stehen, ( Bsp. von U2 - U100 ), dann meldet mir die Eingabemaske diese Zeilen als belegt. Beim Drücken auf "Neu" wird mir dann Pos. 101 angezeigt. Würden die Formeln zu diesem Zeitpunkt noch nicht drinstehen, sondern erst nach Eingabe eines Wertes in W2, würde die Maske die Zeilen nach und nach abklappern ( 2 dann 3 dann 4 usw. )

Gruß Timi
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 17.05.2008, 00:47 Nach oben

Hallo!

Ach ja, die Maske... Evil or Very Mad

Reicht es dir denn trotzdem mit den Werten?
Sonst musst du die Formeln mit "Formula" (englisch) oder "FormulaLocal" (deine Excel-Sprache) eintragen lassen und ein bischen basteln:

Cells(i, 21).Formula = "=IF(" & Cells(i, 23).Address & "="""",""""," & ...usw.

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 17.05.2008, 01:01 Nach oben

Habe Diese folgende Anweisung integriert und sie funktioniert.
Leider stand Excelchen absolut still. Nix ging mehr! Mit Strg - Alt - Entf abgewürgt. Kam sonst nicht mehr raus!

Sub test()
Dim i As Integer
For i = 2 To 1000
If Not IsEmpty(Cells(i, 23)) Then Cells(i, 21) = _
Cells(i, 18) & Cells(i, 19) & "-" & Cells(i, 20)
Next i
End Sub

Ist diese Anweisung zuviel für Excelchen? Scheint sich daran verschluckt zu haben? Atemstillstand! Exitus!

Gruß Timi
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 17.05.2008, 01:13 Nach oben

Nanü?

Das dürfte nicht einmal zu viel für einen C64 sein...
Hast du noch irgendwelche Ereignis-Codes parallel laufen, die dazwischenfunken könnten?
Ansonsten die Holzhammer-Methode:
Runterfahren > Hochfahren > nochmal versuchen

Oder hat Excel etwa den Virus erkannt, den ich da mit rein programmiert habe??? Very Happy Very Happy Very Happy

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 17.05.2008, 01:25 Nach oben

Ja, die C64, das waren noch robuste Teile!!!

Nee, habe diesen Code hier angehängt!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If WorksheetFunction.CountA(Range("W2:W1000")) > 0 Then
For Each Zelle In Range("W2:W1000").SpecialCells(xlCellTypeConstants)
If IsEmpty(Zelle.Offset(0, -4)) Then Zelle.Offset(0, -4) = Year(Date)
Next Zelle
End If
Dim i As Integer
For i = 2 To 1000
If Not IsEmpty(Cells(i, 23)) Then Cells(i, 21) = _
Cells(i, 18) & Cells(i, 19) & "-" & Cells(i, 20)
Next i

End Sub

Und Excelchen war regungslos!

Geht es vielleicht auch hiermit? das man diese Anweisung evtl. so umschreibt, dass immer wieder die vorhergehende Zelle runterkopiert wird, aber wie gesagt, nur wenn in Zelle W2 und folgende was drinsteht. Weiß leider nicht, wiesich das beimLöschen einesEintrags durch die Maske Evil or Very Mad bemerkbar macht. Vielleicht ist ja auch ein Fehler in der 1. Version oben? Die wäre mir lieber!

Range("U2").Select
Selection.AutoFill Destination:=Range("U2:U3"), Type:=xlFillDefault
Range("U2:U3").Select
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 17.05.2008, 01:38 Nach oben

Hallo!
Zitat:
Weiß leider nicht, wiesich das beimLöschen einesEintrags durch die Maske bemerkbar macht.

Das weiß wohl nicht mal Billy Gates persönlich...

Aber der Winterschlaf von Excel macht Sinn, denn dieser Code wird jedes Mal aufgerufen, wenn eine Änderung im Blatt vorgenommen wird, und sei es durch den Code selbst! Das heißt, durch jede Änderung im Blatt durch den Code wird der Code erneut von vorne aufgerufen.
Das kann im Extremfall (also deinem Fall) eben endlos werden...

Teste mal dies:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'XXXXXXXXXXXXXXXX
Dim Zelle As Range
If WorksheetFunction.CountA(Range("W2:W1000")) > 0 Then
For Each Zelle In Range("W2:W1000").SpecialCells(xlCellTypeConstants)
If IsEmpty(Zelle.Offset(0, -4)) Then Zelle.Offset(0, -4) = Year(Date)
Next Zelle
End If
Dim i As Integer
For i = 2 To 1000
If Not IsEmpty(Cells(i, 23)) Then Cells(i, 21) = _
Cells(i, 18) & Cells(i, 19) & "-" & Cells(i, 20)
Next i
Application.EnableEvents = True 'XXXXXXXXXXXXXXXX
End Sub

Dadurch wird dieses Verhalten temporär aufgehoben.

PS: Evtl. macht es auch Sinn, den Bereich vorher zu löschen:
Range("W2:W1000").ClearContents
Aber das weißt du am besten...

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 17.05.2008, 01:46 Nach oben

VOLLTREFFER!

Was bedeutet Verhalten temporär aufgeschoben? In wie fern? Wie lange?

Wenn Du es jetzt noch schaffst, die Anweisung so zu erweitern, dass wenn ich W2 usw. lösche, dann auch U2 usw, mitgelöscht wird, dann wäre es perfekt!!!!
Benutzer-Profile anzeigenPrivate Nachricht senden
timi
User mit gefährlichem Halbwissen
User mit gefährlichem Halbwissen


Anmeldedatum: 12.03.2008
Beiträge: 105
Wohnort: 67742 Lauterecken

BeitragVerfasst am: 17.05.2008, 01:53 Nach oben

HALT - STOP!
Vergiß' die letzte Frage mit dem Löschen!
Dummer Fehler von mir.
Wird ja durch die Maske mitgelöscht! War die ganze Zeit manuell; ohne Maske unterwegs!!

Auf jeden Fall, VIELEN DANK!!!
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 17.05.2008, 01:54 Nach oben

Hallo!

EnableEvents = Ereignisse zulassen
Zu Beginn des Codes wird diese Einstellung auf "False" gesetzt, am Ende wieder auf "True". Für die Laufzeit des Codes wird sie also deaktiviert.

Wegen des Löschens probier mal
Range("U2:U1000"):ClearContents
Da hatte ich mich eben in der Spalte vertan...

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5555

BeitragVerfasst am: 17.05.2008, 01:55 Nach oben

zu langsam...

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Text einer Zelle in drei Zellen aufte... Viktoria Microsoft Excel Hilfe 2 04.09.2008, 13:53 Letzten Beitrag anzeigen
Keine neuen Beiträge Makro das email loescht stom Microsoft Outlook Hilfe 0 03.09.2008, 13:20 Letzten Beitrag anzeigen
Keine neuen Beiträge Excel spielt verrückt, Makro funktion... Frederic Microsoft Excel Hilfe 3 02.09.2008, 12:59 Letzten Beitrag anzeigen
Keine neuen Beiträge Bei Veränderung in Eingabemaske Makro... trottlbua Microsoft Excel Hilfe 2 02.09.2008, 10:15 Letzten Beitrag anzeigen
Keine neuen Beiträge Benötige Excel Formel Kannnix Microsoft Excel Hilfe 6 30.08.2008, 13:05 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de