Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

werte automatisch per enter speichern

werte automatisch per enter speichern
24.05.2005 19:47:39
max
hallo excel profis
ich knabbere an einem problem und komme nicht weiter, kann evtl. jemand helfen?
gibt es eine möglichkeit in einer celle eine zahl einzugeben und nach eingabe der zahl durch drücken der enter taste sich diese zahl in einen angegebenen pfad in eine zweite tabelle speichert?
ich müßte es immer per befehlsbutton machen, das ist aber zu umständlich, besser währe es automatisch.
könnte mir einer von den experten hier helfen?
ich habe einen macro fertig gemacht und auch noch einmal beschrieben.

Sub Makro1()
' Makro1 Makro
' Makro am 24.05.2005 von max aufgezeichnet
' Tastenkombination: Strg+q
Selection.Copy 'kopieren sollte durch betätigen der enter taste erfolgen
Sheets("Tabelle2").Select 'das währe der pfad (wählbar)
Range("A1").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlAdd, SkipBlanks:=False _
, Transpose:=False 'die addition muß so bleiben
Sheets("Tabelle1").Select
Range("A1").Select
Application.CutCopyMode = False
Selection.ClearContents 'das feld muß nach dem kopiervorgang auch gelöscht werden
End Sub

'es sollte für jede celle von a1:a11 und c1:c11 funktionieren und evtl. erweiterbar sein
mfg max

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: werte automatisch per enter speichern
24.05.2005 20:48:10
Erich
Hallo Max,
tut die folgende Prozedur das, was du erreichen willst?
(Sie gehört in den VBA-Code der Tabelle, in der die Daten eingegeben werden, also bei dir "Tabelle1".)
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim gZe&, gSp%                        ' Zeile und Spalte der geänderten Zelle
gZe = Target.Row
gSp = Target.Column
' nur Spalten A und C, Zeilen bis 11
If (gSp = 1 Or gSp = 3) And gZe < 11 Then
With Sheets(1)
Sheets(2).Cells(gZe, gSp) = Sheets(2).Cells(gZe, gSp) _
+ .Cells(gZe, gSp)
Target.ClearContents                   ' Eingabe wird wieder gelöscht
End With
End If
End Sub
Der Code geht momentan davon aus, dass die Addition in der Zelle des zweiten Blatts stattfindet, die in der selben Zeile und Spalte wie das Eingabezelle steht. Wenn der Additionsbereich in Blatt 2 woanders liegen soll, könnte man die Anweisung z. B. so umschreiben:
         Sheets(2).Cells(gZe + 3, gSp + 5) = Sheets(2).Cells(gZe + 3, gSp + 5) _
+ .Cells(gZe, gSp)
Nicht ganz ungefährlich finde ich das Löschen des eingegebenen Wertes. Kann man sich da nicht leicht vertun, etwa Werte vergessen oder doppelt eingeben? An der Summe in Blatt 2 kann man das später nicht erkennen...
Grüße aus Kamp-Lintfort
Erich
Anzeige
AW: werte automatisch per enter speichern
24.05.2005 21:01:39
max
das sieht großartig aus ein problem mit dem löschen besteht nicht da die gesammelten werte (durch addition) in tab 2 ausschlaggebend sind.
danke und respeckt
ich schreibe mir das alles mal um, falls ich noch irgend etwas wissen müsste würde ich mich gerne noch einmal melden.
nochmals danke
mfg max
Zweite Variante
24.05.2005 21:28:10
Klaus
Hallo Max,
hier eine weitere Variante von mir (in Modul "Tabelle1" kopieren):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Zielzelle As Range
Set Bereich = Range("a1:a11,c1:c11")
Set Zielzelle = Sheets("Tabelle2").Range("A1")
If Not (Intersect(Target, Bereich) Is Nothing) Then
Application.EnableEvents = False
Zielzelle.Value = Zielzelle.Value + Target.Value
Target.ClearContents
Application.EnableEvents = True
End If
End Sub

Gruß Klaus
Anzeige
AW: externer pfad klappt nicht
24.05.2005 22:18:45
max
guten abend noch einmal
auch die zweite variante habe ich probiert, danke auch diese funktioniert
nun versuche ich die erste variante auf einen externen pfad umzuschreiben aber ohne erfolg hat vieleicht dazu noch jemand einen tipp.
ich habe den code noch einmal beigefügt.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim gZe&, gSp%                        ' Zeile und Spalte der geänderten Zelle
gZe = Target.Row
gSp = Target.Column
' nur Spalten A und C, Zeilen bis 11
If (gSp = 1 Or gSp = 2 Or gSp = 3 Or gSp = 4) And gZe < 20 Then
With Sheets(1)
Workbooks.Open Filename:="P:\MAX\speichern daten.xls" Sheets(2).Cells(gZe, gSp) = Sheets(2).Cells(gZe, gSp) _
+ .Cells(gZe, gSp)
Target.ClearContents                   ' Eingabe wird wieder gelöscht
End With
End If
End Sub

herzlichen dank im vorraus
Anzeige
AW: externer pfad klappt nicht
24.05.2005 23:21:59
Erich
Hallo Max,
so sollte das Addieren in einer anderen Mappe funktionieren (bisher war mir nicht klar, was du mit dem "externen pfad" meintest):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wsEin As Worksheet, wsSpei As Worksheet
Dim gZe&, gSp%                        ' Zeile und Spalte der geänderten Zelle
gZe = Target.Row
gSp = Target.Column
' nur Spalten A bis D, Zeilen bis 19
If gSp < 5 And gZe < 20 Then
Set wsEin = ActiveSheet
' Öffnen der "Speichermappe"
Set wsSpei = Workbooks.Open("P:\MAX\speichern daten.xls").Sheets(1)
' Addition
wsSpei.Cells(gZe, gSp) = wsSpei.Cells(gZe, gSp) _
+ wsEin.Cells(gZe, gSp)
' Schließen der "Speichermappe"
ActiveWorkbook.Close SaveChanges:=True
' Eingabe wird wieder gelöscht
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End If
End Sub

Grüße aus Kamp-Lintfort
Erich
Anzeige
AW: externer pfad klappt nicht
25.05.2005 12:19:00
max
ersteinmal danke für die antwort, bin aber zur zeit zu hause und kann es erst gegen 16:00 ausprobieren.
ich nelde mich noch mal ob es geklappt hat.
mfg max
AW: externer pfad klappt aber...
25.05.2005 19:38:53
max
Hallo zusammen,
prima, es klappt
ich habe den pfad noch einmal abgeändert, in der mappe befindet sich nur ein arbeitsblatt, das ich umbenannt habe auf datenblatt, es gibt also keine weiteren blätter
da der pfad von dir aber mit.sheets(1) endet weis ich nicht wie ich das ändern kann, denn so wie ich es gemacht habe findet er den pfad nicht
Set wsSpei = Workbooks.Open("P:\Servierschnitt\Übersicht Paletten\August`05\datenblatt.xls")
P:= Laufwerk
Servierschnitt:= erster Ordner
Übersicht Paletten:= zweiter Ordner
August`05: =Unterordner
datenblatt: =die Arbeitsmappe(tabelle1 heist auch datenblatt und mehr blätter gibt es in der mappe nicht)
der pfad funktioniert so:
' Öffnen der "Speichermappe"
Set wsSpei = Workbooks.Open("P:\MAX\speichern daten.xls").Sheets(1)
kann mir hier noch einmal jemand helfen?
mfg max
Anzeige
AW: externer pfad klappt aber...
25.05.2005 23:01:07
Erich
Hallo Max,
es könnte sein, dass du Datei/Arbeitsmappe/Workbook und Tabelle/Blatt/Sheet verwechselst.
Ich vermute, dass die Datie/Arbeitsmappe/Workbook wie bisher "speichern daten.xls" heißt.
Die steht jetzt aber wohl nicht mehr im Verzeichnis F:\MAX\, sondern im Verzeichnis P:\Servierschnitt\Übersicht Paletten\August`05\
In der Mappe "speichern daten.xls" gibt es eine Tabelle/Worksheet namens "datenblatt".
Workbooks.Open("P:\Servierschnitt\Übersicht Paletten\August`05\speichern daten.xls") öffnet die Mappe "speichern daten.xls".
Mit
Set wsSpei = Workbooks.Open("P:\Servierschnitt\Übersicht Paletten\August`05\datenblatt.xls").Sheets(1)
oder (gleichbedeutend)
Set wsSpei = _
Workbooks.Open("P:\Servierschnitt\Übersicht Paletten\August`05\datenblatt.xls").Sheets("datenblatt")
wird der Variablen wsSpei (ist als Worksheet definiert) gleich dem ersten Tabellenblatt in der Mappe "speichern daten.xls" gesetzt. In diesem Blatt erfolgen die Additionen.
Also: Wenn du
Set wsSpei = Workbooks.Open("P:\Servierschnitt\Übersicht Paletten\August`05\datenblatt.xls").Sheets(1)
anstelle der alten Anweisung schreibst, werden Mappe und Blatt wohl gefunden.
Grüße aus Kamp-Lintfort
Erich
Anzeige
danke:! es klappt ich war auf dem holzweg prima oT
25.05.2005 23:00:59
max

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige