Zum Inhalt

Unsere Foren

  • Forum-Organisation
  • MS Office 2007 allg.
  • MS Office 2007
  • sonst. MS Office 2007
  • Microsoft Produkte
  • Tutorials


  • Registrieren
  • FAQ
  • Mitglieder
  • Anmelden
  • Erweiterte Suche
  • Portal Foren-Übersicht MS Office 2007 Excel 2007 Hilfe

  • WERBUNG

Makro erweitern

RSSFragen zu Excel 2007
  • WERBUNG

Antwort schreiben
34 Beiträge • Seite 1 von 4 • 1, 2, 3, 4
  • Diesen Beitrag melden
  • Mit Zitat antworten

Makro erweitern

Beitragvon Knuddl » 28.01.2009, 07:56

Deine MS-Office-Version: 2003
Suite Deines Office Pakets: Home and Student
AddIn installiert: Nein
Dein Wissensstand: Grundwissen

Welches Virenschutz-Programm hast Du installiert? antivir
Betriebssystem Version: Win xp

Was hast Du gemacht, bevor das Problem aufgetreten ist?


Was hast Du bereits versucht um das Problem zu lösen?


Fehlerbeschreibung und Nachricht
Hallo zusammen,

ich habe mich nun daran getraut, ein Mokro-Code (folgt) einzufügen und siehe da es klappt, nochmals Danke an alle.

Nun möchte ich aber nicht nur, dass wenn ich Beträge in Spalte H einfüge, dass das Datum unveränderbar eingefügt wird, sondern in einer weiteren Spalte auf dem gleichen Tabellenblatt eine "1" eingefügt wird.

Geht das?

Vielen Dank son mal!
Petra

Hier nun der Code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'**************************************************
'* H. Ziplies *
'* 05.11.07 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' wird im definierten Bereich ein Wert geändert, wird in der nächsten Spalte das Datum eingetragen
' das Datum wird entfernt falls die Eingabe gelöscht wird
' wird im definierten Bereich eine Eingabe überschrieben wird das Datum nicht verändert
Dim RaBereich As Range ' Variable fü überwachten Bereich
Dim RaZelle As Range ' Variable für Zelle die zur Zeit bearbeitet wird
Set RaBereich = Range("G7:G7000") ' Bereich der Wirksamkeit
' ActiveSheet.Unprotect
Set RaBereich = Intersect(RaBereich, Range(Target.Address)) ' prüfen ob veränderte Zelle im überwachten Bereich
If RaBereich Is Nothing Then Exit Sub ' keine Zelle im überwachten Bereich
Application.EnableEvents = False ' Reaktion auf Eingabe abschalten
Application.ScreenUpdating = False ' Bildschirm abschalten
For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im überwachten Bereich
If RaZelle = "" Then
RaZelle.Offset(0, 73) = ""
ElseIf RaZelle.Offset(0, 73) = "" Then
RaZelle.Offset(0, 73) = 1
End If
Next RaZelle
' ActiveSheet.protect
Application.ScreenUpdating = True ' Bildschirm einschalten
Application.EnableEvents = True ' Reaktion auf Eingabe einschalten
Set RaBereich = Nothing ' Variable leeren
End Sub
Zuletzt geändert von PeterS am 23.02.2009, 21:54, insgesamt 1-mal geändert.
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Hajo_Zi » 28.01.2009, 09:53

Hallo Petra,

man muss nur lesen
Set RaBereich = Range("G7:G7000") ' Bereich der Wirksamkeit
ändern in
Set RaBereich = Range("G7:G7000,H7:H7000") ' Bereich der Wirksamkeit

Gruß Hajo
Benutzeravatar
Hajo_Zi
 
Beiträge: 1330
Registriert: 31.01.2007, 19:43
Plz/Ort: Neubrandenburg
  • Private Nachricht
  • Website
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Knuddl » 28.01.2009, 10:29

Hallo Hajo,

vielen Dank für den Hinweis "man muss nur lesen"!
Doch sollte man das was man liest auch verstehen, und weil ich es nicht verstehe, wende ich mich ja an Euch!

Habe aber auch dummerweise einen falschen Code eingefügt, sorry! :cry:

Ich gebe in Zelle H7 eine Zahl ein, in Zelle B7 erscheint das Datum - soweit funktioniert das auch super.
Jetzt möchte ich aber, dass durch genau diese Eingabe der Zahl in H7 in der Zelle CD7 eine "1" erscheint.

Hier nochmals der richtige Code:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'**************************************************
'* H. Ziplies *
'* 05.11.07 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' wird im definierten Bereich ein Wert geändert, wird in der nächsten Spalte das Datum eingetragen
' das Datum wird entfernt falls die Eingabe gelöscht wird
' wird im definierten Bereich eine Eingabe überschrieben wird das Datum nicht verändert
Dim RaBereich As Range ' Variable fü überwachten Bereich
Dim RaZelle As Range ' Variable für Zelle die zur Zeit bearbeitet wird
Set RaBereich = Range("H7:H7000") ' Bereich der Wirksamkeit
' ActiveSheet.Unprotect
Set RaBereich = Intersect(RaBereich, Range(Target.Address)) ' prüfen ob veränderte Zelle im überwachten Bereich
If RaBereich Is Nothing Then Exit Sub ' keine Zelle im überwachten Bereich
Application.EnableEvents = False ' Reaktion auf Eingabe abschalten
Application.ScreenUpdating = False ' Bildschirm abschalten
For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im überwachten Bereich
If RaZelle = "" Then
RaZelle.Offset(0, -6) = ""
ElseIf RaZelle.Offset(0, -6) = "" Then
RaZelle.Offset(0, -6) = Date
End If
Next RaZelle
' ActiveSheet.protect
Application.ScreenUpdating = True ' Bildschirm einschalten
Application.EnableEvents = True ' Reaktion auf Eingabe einschalten
Set RaBereich = Nothing ' Variable leeren
End Sub
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Hajo_Zi » 28.01.2009, 10:35

Hallo Petra,

Du hast jetzt .Offset(0,-) geschrieben da B 6 Spalten vor (-) H ist. Jetzt willst Du in CD schreiben, das ist danach also + und jetzt nur noch die Anzahl der Spalten ermitteln.
H=8 CD=74, also würde ich es mal mit 65 versuchen.

Gruß Hajo
Benutzeravatar
Hajo_Zi
 
Beiträge: 1330
Registriert: 31.01.2007, 19:43
Plz/Ort: Neubrandenburg
  • Private Nachricht
  • Website
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Knuddl » 28.01.2009, 11:46

Hallo Hajo,

RaZelle.Offset(0, -6) = ""
ElseIf RaZelle.Offset(0, -6) = "" Then
RaZelle.Offset(0, -6) = Date

Was genau muß ich wo verändern?
Hab hier 3 mal Offset, wo soll ich was - wie rein schreiben.

Habs auch gerade versucht, ich gebe +75 ein, übernimmt es hier immer nur 75, das Pluszeichen wird immer wieder gelöscht und das Datum erscheint dann auch nicht mehr, benötige aber beides, das Datum -6 und die "1" +75.

Danke für Deine Geduld!
Petra
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Hajo_Zi » 28.01.2009, 12:14

Hallo Petra,

die -6 ersetzen durch 75 da Du nicht mehr 6 Spale nach links möchtest sonder 75 nach rechts.

Gruß Hajo
Benutzeravatar
Hajo_Zi
 
Beiträge: 1330
Registriert: 31.01.2007, 19:43
Plz/Ort: Neubrandenburg
  • Private Nachricht
  • Website
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erwitern

Beitragvon Knuddl » 28.01.2009, 12:25

doch ich möchte BEIDES in ein und demselben Arbeitsblatt....

6 Spalten zurück das Datum

UND

75 Spalten nach rechts die "1"
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erweitern

Beitragvon Hajo_Zi » 28.01.2009, 12:28

Hallo Petra,

RaZelle.Offset(0, -6) = ""
RaZelle.Offset(0, 75) = ""
ElseIf RaZelle.Offset(0, -6) = "" Then
RaZelle.Offset(0, -6) = Date
RaZelle.Offset(0, 75) = 1

Gruß Hajo
Zuletzt geändert von Hajo_Zi am 28.01.2009, 12:32, insgesamt 1-mal geändert.
Benutzeravatar
Hajo_Zi
 
Beiträge: 1330
Registriert: 31.01.2007, 19:43
Plz/Ort: Neubrandenburg
  • Private Nachricht
  • Website
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erweitern

Beitragvon Knuddl » 28.01.2009, 13:06

Hallo Hajo,

das hat geklappt, echt super und ganz lieben Dank für Deine Geduld....

:danke: :hammer
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

  • Diesen Beitrag melden
  • Mit Zitat antworten

Re: Makro erweitern

Beitragvon Knuddl » 23.02.2009, 20:38

Hallo, jetzt bin ich schon wieder da.
Ich habe von Hajo folgenden Makro-Code bekommen, habe ihn in meine Exceldatei eingefügt und es hat auch geklappt.
Wenn ich in J7 eine Zahl eingebe, wird in der 6. Zelle davor das Datum automatisch eingefügt und in der 73. Zelle danach wird eine 1 geschrieben.
Es hat, nachdem ich den Code eingefügt habe alles so funktioniert wie ich es haben wollte.
Jetzt wollte ich anfangen, in die vorbereitete Datei, Werte einzugeben und es tu sich nix mehr, weder das Datum noch die "1" wird eingefügt.
Was ist passiert. Habe die Datei weder verschoben noch sonst was damit gemacht. Habe es geprüft, es hat geklappt und nun geht nix mehr.
Nachfolgend hier nun der Code, vielleicht kann mir jemand sagen was da los ist.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'**************************************************
'* H. Ziplies *
'* 05.11.07 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' wird im definierten Bereich ein Wert geändert, wird in der nächsten Spalte das Datum eingetragen
' das Datum wird entfernt falls die Eingabe gelöscht wird
' wird im definierten Bereich eine Eingabe überschrieben wird das Datum nicht verändert
Dim RaBereich As Range ' Variable fü überwachten Bereich
Dim RaZelle As Range ' Variable für Zelle die zur Zeit bearbeitet wird
Set RaBereich = Range("H7:H7000") ' Bereich der Wirksamkeit
' ActiveSheet.Unprotect
Set RaBereich = Intersect(RaBereich, Range(Target.Address)) ' prüfen ob veränderte Zelle im überwachten Bereich
If RaBereich Is Nothing Then Exit Sub ' keine Zelle im überwachten Bereich
Application.EnableEvents = False ' Reaktion auf Eingabe abschalten
Application.ScreenUpdating = False ' Bildschirm abschalten
For Each RaZelle In RaBereich ' Schleife über alle veränderten Zellen im überwachten Bereich

If RaZelle = "" Then
RaZelle.Offset(0, -6) = ""
RaZelle.Offset(0, 73) = ""
ElseIf RaZelle.Offset(0, -6) = "" Then
RaZelle.Offset(0, -6) = Date
RaZelle.Offset(0, 73) = 1

End If
Next RaZelle
' ActiveSheet.protect
Application.ScreenUpdating = True ' Bildschirm einschalten
Application.EnableEvents = True ' Reaktion auf Eingabe einschalten
Set RaBereich = Nothing ' Variable leeren
End Sub
Knuddl
 
Beiträge: 23
Registriert: 28.01.2009, 07:22
  • Private Nachricht
  • E-Mail
Nach oben

Nächste

Antwort schreiben
34 Beiträge • Seite 1 von 4 • 1, 2, 3, 4

  • WERBUNG

Zurück zu Excel 2007 Hilfe

Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot] und 0 Gäste

  • Portal Foren-Übersicht
  • Das Team • Alle Cookies des Boards löschen • Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

board3 Portal - based on phpBB3 Portal | Impressum

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de
SEO - OPTIMIZED
Design by HPS/Graphic-Corner © 2008 based on Prosilver

CSS ist valide! Valid XHTML 1.0 Strict XML - Sitemap SEOmoz Linkscape Score: 4.6 Suchmaschinenoptimierung mit Ranking-Hits