code erstellt "er läuft und läuft "

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: code erstellt "er läuft und läuft " von: mayk
Geschrieben am: 03.03.2005 22:21:37

ich habe mittels macrorecorder diesen code gebastelt und ihn als change ereigniss in die tabelle 1 eingefügt, nun ja die wissenden unter euch wissen wahrscheinlich das das nicht geht. Wer kann mir sage was falsch ist und wie ich ihn ändere (Es läuft, aber ich bekomme es nicht mehr zum stillstand) also nicht ausprobieren!!


Private Sub Worksheet_Change(ByVal Target As Range)
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "=IF(R[-1]C>0,R[-1]C,"""")"
    Range("E2").Select
    Selection.Copy
    Range("E3").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    
End Sub


gruß Mayk
Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: Josef Ehrensberger
Geschrieben am: 03.03.2005 22:31:17

Hallo Mayk!

Wenn man wüsste wann der Code arbeiten soll, bräuchte man nicht raten!
Ausserdem sehe ich nicht viel Sinn in dem was der Code macht, aber
vielleicht so.


Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Row = 1 And Target.Count = 1 Then
      On Error GoTo errorhandler
      Application.EnableEvents = False
      Target.Offset(1, 0).FormulaR1C1 = "=IF(R[-1]C>0,R[-1]C,"""")"
      Target.Offset(2, 0) = Target.Offset(1, 0).Value
   End If
   
errorhandler:
Application.EnableEvents = True
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!




Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: mayk
Geschrieben am: 03.03.2005 22:48:01

hallo
lediglich ein selbstversuch auf meine frage wie erhalte ich den wert in zeile3
aber auch mit dem abgeänderten code von dir, geht mir der wert in e3 verloren, lasse ich es als macro ablaufen bleibt er mir erhalten woran liegt das

gruß mayk


Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: Josef Ehrensberger
Geschrieben am: 03.03.2005 22:50:58

Hallo Mayk!

Erklär mal!

Wann soll der Wert in Zeile drei gesetzt werden, wann soll er erhalten werden
und wann soll er wieder aktualisiert werden?


Gruß Sepp


P.S.: Rückmeldung nicht vergessen!




Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: mayk
Geschrieben am: 03.03.2005 22:55:54

gesetzt werden soll der wert in zeile 3 wenn er durch eine verweis in zeile 1 aufgerufen wird wird der wert in zeile eins durch die formel wieder gelöscht sollte der wert in zeile 3 bestehen bleiben wird der wert in zeile 1 wieder erneuert (wieder durch einen verweis) soll auch der wert in zelle 3 wieder erneuert werden.
gruß mayk


Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: Josef Ehrensberger
Geschrieben am: 03.03.2005 23:25:46

Hallo Mayk!

Ich weis nicht, ob ich dich richtig verstanden habe und für welche Zellen
in Zeile 1 das gelten soll. Der folgende Code gilt für die komplette Zeile 1 !



      
Option Explicit
Dim varArray As Variant

Private Sub Worksheet_Calculate()
Dim n As Integer

On Error GoTo errorhandler
Application.EnableEvents = 
False

noArray:

   
For n = 1 To 255
      
If Cells(1, n).Value <> "" Then
         
If Cells(1, n) <> varArray(1, n) Then
            Cells(3, n) = Cells(1, n).Value
         
End If
      
End If
   
Next

varArray = Range(
"A1:IV1").Value

errorhandler:

   
If Err.Number = 13 Then
      varArray = Range(
"A1:IV1").Value
      Err.Clear
      
Resume noArray
   
End If

Application.EnableEvents = 
True

End Sub 


     Code eingefügt mit Syntaxhighlighter 3.0


Gruß Sepp

P.S.: Rückmeldung nicht vergessen!




Bild


Betrifft: geht auch einfacher ;-))) von: Josef Ehrensberger
Geschrieben am: 03.03.2005 23:32:12

Hallo Mayk!

Hab gerade zu kompliziert gedacht!

Das reicht auch!


      
Option Explicit

Private Sub Worksheet_Calculate()
Dim n As Integer

On Error GoTo errorhandler

Application.EnableEvents = 
False


   
For n = 1 To 255
      
If Cells(1, n).Value <> "" Then
            Cells(3, n) = Cells(1, n).Value
      
End If
   
Next

errorhandler:

Application.EnableEvents = 
True

End Sub 


     Code eingefügt mit Syntaxhighlighter 3.0





Gruß Sepp


P.S.: Rückmeldung nicht vergessen!




Bild


Betrifft: AW: code erstellt "er läuft und läuft " von: mayk
Geschrieben am: 03.03.2005 23:42:50

entschuldige bitte, wenn ich den code in tabelle 1 einfüge, kann ich in zelle 1 werte eingeben es werden aber keine in zeile 3 angezeigt
option explicit wird doch in die arbeitsmappe oder tabelle eingefügt oder liege ich falsch?
gruß mayk


Bild


Betrifft: AW: mit mappe von: maykl
Geschrieben am: 03.03.2005 23:49:32

um zu erklären was das ganze soll
https://www.herber.de/bbs/user/19185.xls
gruß mayk


Bild


Betrifft: AW: mit mappe von: MichaV
Geschrieben am: 04.03.2005 00:29:55

Hi Maykl,

wenn ich mich mal einmischen darf... Das Problem ist doch nur, daß das Makro aufgerufen wird, wenn sich die Selection ändert. Innerhalb des Makros änderst Du aber die Selection, also ruft sich das Makro immer selber auf, rekursiv sozusagen. Das kannst Du verhindern, indem Du:

Public blnSub As Boolean


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If blnSub Then Exit Sub 'rekursiven Aufruf abbrechen
blnSub = True
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "=IF(R[-1]C>0,R[-1]C,"""")"
    Range("E2").Select
    Selection.Copy
    Range("E3").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
blnSub = False
End Sub



Private Sub CommandButton1_Click()
Range("a10").Value = Range("a10").Value * 1 + 1
End Sub


Damit wird das Makro- egal was es an sich macht- nur ein mal durchlaufen.

Gruß! Micha


Bild


Betrifft: AW: mit mappe von: mayk
Geschrieben am: 04.03.2005 01:07:38

kein problem jeder für jeden, ich glaube mitlerweile beschäftigt sich schon das halbe forum mit
der sache


jetzt habe ich das Problem das ich auf keine Zelle zugreifen kann da der kurser mmer in die zelle e3 springt ?
gruß mayk


Bild


Betrifft: Ein gutgemeinter Rat von: Martin Beck
Geschrieben am: 04.03.2005 13:12:13

Hallo Mayk,

ich habe die diversen Threads, die Du gestartet hast, mitgelesen, und möchte Dir einen gutgemeinten Rat geben. Es ist für einen VBA-Anfänger besser, das zu lösende Problem zu schildern, und nicht einen nichtfunktionierenden Code zu posten, ohne das klar ist, was erreicht werden soll.

Eine klare Problemstellung ist i.d.R. schon die halbe Lösung. Mit Deiner Herangehensweise erreichst Du nur, dass Herscharen von Forumsteilnehmern im Blindflug an Deinem Code herummurksen und irgendwann frustriert aufgeben.

Wohlgemerkt: Du kannst ruhig jede Menge Fragen stellen, davon lebt das Forum. Aber versuche, gezielt auf das zu lösende Problem hin zu formulieren, z.B. so:

Ich habe folgende Aufgabe ... dazu habe ich bisher unternommen ... das Egebnis ist soundso ... richtig wäre ... ich suche eine Lösung mit/ohne VBA ...

Gruß
Martin Beck


Bild


Betrifft: @Martin & mayk: Danke Martin, dass du... von: Luc i-(
Geschrieben am: 04.03.2005 15:21:44

...mir einen Teil der Predigt abgenommen hast (vgl OT, Martin)! Denn nachdem ich heute morgen nun schon den 5.Thread zu diesem Thema vorgefunden habe, muss ich dir, Mayk, sagen, es scheint sinnlos, hier was zu tun!
1. es existiert offensichtl. kein ordentl. Projekt - nur Ideen
2. du hast weder ausreichende Excel- noch VBA-Kenntnisse
3. es wird für dich schwer genug wdn, ein Projekt auf dem Papier zu erarbeiten, was du...
4. ...brauchst, wenn du (oder dein Chef?) einen externen Auftrag vergibst.
Denn darauf läuft es hinaus. So wie bisher geht es nicht weiter! Keiner kann sich sicher sein, deine Intentionen zu treffen, deshalb meldet sich auch keiner mehr. Es ist mir mit nur wenig Aufwand gelungen, meine dir übermittelten Codes an die von dir auf den Server geladenen Testtabellen anzupassen (das hättest du selber können müssen!) und es läuft so wie ich VERMUTE, dass du es meinst. Hab sogar noch ein bisschen Schnickschnack dazu getan. Aber ich bin mir ja nicht mal sicher, ob alles, was ich dir als PgmCode übermittelt habe, von dir auch als solcher erkannt wurde. So macht man KEIN Projekt, das kann leicht nach hinten losgehen und Schaden verursachen. Du schickst ja morgens deine Fahrer auch nicht ziel- und planlos auf die Reise. Projektieren und Programmieren sind auch Ernst zu nehmende Tätigkeiten, die ein gewisses Können erfordern. Übrigens hast du das ja gemerkt als deine Ereignisprozedur sich immer wieder selbst ausgelöst hat. Du hast also nicht verstanden, warum dir Nepomuk in eine Prozedur die .EnableEvent-Befehle gesetzt hat und offensichtlich auch Nichts nachgelesen.
In deinem Fall scheint (zumindest zum ggw.Zeitpunkt) der Spruch gerechtfertigt, "Schuster bleib bei deinen Leisten!". Deshalb werde ich dir meine Testdateien mit Codevarianten (vorerst?) nicht hochladen (was anderes gäbe eh keinen Sinn, weil man nicht weiß, was du mit dem Code machst!).

Ciao Luc
i-(


Bild


Betrifft: es ist wie mit den Ärzten... (Götter in weiß) von: mayk
Geschrieben am: 04.03.2005 16:04:28

nun ja, warum versagen eigentlich immer die anderen??

gruß mayk


Bild


Betrifft: @mayk - mit Kurztext! ansonsten Ende! von: Luc
Geschrieben am: 04.03.2005 19:43:06

wenn du damit meinst, dass wir versagt hätten, kann ich mich über soviel unbegründetes Selbstbewusstsein nur wundern! Wenn du einen Programmierauftrag mit Pflichtenheft und allem drum und dran erteilen müsstest, würdest du ganz schön alt aussehen! Es ist halt so, nur Ahnungslose sehen die Gefahren nicht. Wenn du nun eine Ereignisprozedur eingesetzt hättest, die progressiv Dateien löschen soll, wäre jetzt womöglich deine Festplatte leer. Ob du deshalb mehr Einsicht zeigen würdest, wage ich nach dem hier zu bezweifeln!
Luc


Bild


Betrifft: AW: Hinweis von: Martin Beck
Geschrieben am: 05.03.2005 11:04:57

http://www.lugbz.org/documents/smart-questions_de.html


 Bild

Beiträge aus den Excel-Beispielen zum Thema "code erstellt "er läuft und läuft ""