Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
580to584
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
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
code erstellt "er läuft und läuft "
03.03.2005 22:21:37
mayk
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

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: code erstellt "er läuft und läuft "
03.03.2005 22:31:17
Josef
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!


Anzeige
AW: code erstellt "er läuft und läuft "
03.03.2005 22:48:01
mayk
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
AW: code erstellt "er läuft und läuft "
03.03.2005 22:50:58
Josef
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!


AW: code erstellt "er läuft und läuft "
03.03.2005 22:55:54
mayk
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
Anzeige
AW: code erstellt "er läuft und läuft "
03.03.2005 23:25:46
Josef
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 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
geht auch einfacher ;-)))
03.03.2005 23:32:12
Josef
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 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
AW: code erstellt "er läuft und läuft "
03.03.2005 23:42:50
mayk
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
AW: mit mappe
04.03.2005 00:29:55
MichaV
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
Anzeige
AW: mit mappe
04.03.2005 01:07:38
mayk
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
Ein gutgemeinter Rat
04.03.2005 13:12:13
Martin
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
Anzeige
@Martin & mayk: Danke Martin, dass du...
04.03.2005 15:21:44
Luc
...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-(
Anzeige
es ist wie mit den Ärzten... (Götter in weiß)
04.03.2005 16:04:28
mayk
nun ja, warum versagen eigentlich immer die anderen?
gruß mayk
@mayk - mit Kurztext! ansonsten Ende!
04.03.2005 19:43:06
Luc
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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige