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

Hilfe, latein am Ende... wie Speichern?

Hilfe, latein am Ende... wie Speichern?
16.01.2004 10:04:37
Jürgen
Hallo allerseits, ich brauche eure Hilfe.
Ich schreibe gerade mein Rechnungsprogramm und bin bis auf meine Buttons auch fertig, aber nun ist Schluß mit lustig!!!
Ich habe folgende 3 Probleme:
1. Ich möchte mit einem Button eine Speicherung unter dem Namen welcher im Feld A1 steht durchführen. (Dort steht die Rechnungsnummer und der Name)
2. Die Rechnungsnummer soll extern in einer Datei abgelegt werden und bei öffnen einer neuen Rechnung wieder aufgerufen werden ( anderes Feld )
3. Wie lege ich eine externe Arbeitsmappe an, bei der ich die Kundendaten speichern und wieder aufrufen kann und zwar ohne sie zu überschreiben ( Art Telefonverzeichniss ? )
Wenn ich die Geschichte hinkriege, kann ich euch das Programm auf Wunsch gerne zumailen. ( danach wird es wohl Verbesserungen hageln )
Ich hoffe Ihr helft mir, da ich mit diesem Programm 2004 meine Rechnungen / Kostenvoranschläge / Abschläge schreiben will und so zurzeit auf dem trockenen sitze.
Gruß Jürgen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe, latein am Ende... wie Speichern?
16.01.2004 10:46:19
geri
Hallo Jürgen
habe daheim ein Musterfile für Rechnungen welches meine ich
all dies beinhaltet, bin aber im Geschäft, kann es erst heute
Abend bereitstellen.
gruss geri
AW: Hilfe, latein am Ende... wie Speichern?
16.01.2004 11:14:38
Alex
Hallo Jürgen,
ich wage mich mal an einen Vorschlag für dein Problem.
1 und 2) Das geht am besten über ein Makro. Hierzu über Menü "Extras -> Makros -> Visual Basic Editor" den VB Editor aufrufen. Dort über das Menü "Einfügen -> Modul" ein neues Makramodul anlegen. Es geht nun ein Fenster auf mit dem Namen "...xls - Modul1 (Code)".
Dann denn nachfolgenden Text einfach in das Modul kopieren.

'Start VBA Code
Option Explicit
'hier den Pfad für die Speicherung der Rechnungsdateien angeben
Private Const SaveDir = "c:\Eigene Dateien\Rechnungen\"
Public Const RegAppName = "Rechnungen"
Public Const RegSection = "Optionen"
Public Const RegKeyNumber = "RENummer"
Public Sub Speichern()
Dim filename    As String
On Error Resume Next
With Application.ActiveSheet
filename = .Range("Dateiname").Value
.SaveAs SaveDir & filename
If Err.Number = 1004 Then
Exit Sub
End If
If Err.Number <> 0 Then
MsgBox "Fehler beim Speichern der Datei '" & filename & _
"' in Verzeichnis '" & SaveDir & "'." & vbNewLine & _
Err.Number & ": " & Err.Description, vbCritical, "Rechnungen"
Exit Sub
End If
'Überprüfen der Rechnungsnummer, ob diese die größte ist und
'somit als letzte RENummer in die Registry eingetragen wird.
CheckRENumber
'Diese Zeile mit einem Kommentarzeichen versehen, falls keine
'Meldung über erfolgreiche Speicherung gewünscht wird
MsgBox "Datei wurde erfolgreich gespeichert", vbInformation, "Rechnungen"
End With
End Sub
Private Sub CheckRENumber()
Dim reNumber        As Long
With Application.ActiveSheet
reNumber = CLng(GetSetting(RegAppName, RegSection, RegKeyNumber, 0))
If CLng(.Range("RENummer").Value) > reNumber Then
SaveSetting RegAppName, RegSection, RegKeyNumber, CLng(.Range("RENummer").Value)
End If
End With
End Sub
'Ende VBA Code

Wichtig!!!
1) Für die einwandfreie Funktion des Makros muss in der Variable "Savedir" der Pfad "c:\Eigene Dateien\Rechnungen\" durch einen gültigen Pfad ersetzt werden.
2) Des weiteren muss in deiner Excel-Arbeitsmappe mit den Rechnungen eine Zelle (z.B. A1) mit dem Namen "Dateiname" existieren. Dort steht dann der Name der zu speichernden Excel-Datei.
3) Es muss eine Zelle mit dem Namen "RENummer" benannt werden. In dieser steht die aktuelle Rechnungsnummer der Rechnung.
4) Des weiteren wird eine Zelle mit den Name "NeuRENummer" benötigt. In dieser wird beim Öffnen die neue Rechnungsnummer geschrieben.
Jetzt kannst du einen Button in deiner Excel-Datei anlegen. Diesem das Makro "Speichern" zuordnen. Das wars!
Das Makro prüft auch beim Speichern, ob die aktuelle Rechnungsnummer größer ist als die bisher gespeicherte Nummer. Wenn ja, dann wird die aktuelle RENummer in die Windows Datenbank (Registry) geschrieben. Somit kann man beim Öffnen einer neuen Rechnungsdatei darauf zugreifen.
Um nun beim Öffnen der Rechnungsdatei-Vorlage die neue Rechnungsnummer zu bekommen, mußt die nachfolgenden Code in die Arbeitsmappe kopieren. Hier mal die genaue Vorgehensweise:
1) Rechnungs-Datei Vorlage mit Excel öffnen
2) Visual Basic Editor öffnen
3) Über Menü "Ansicht -> Projekt-Explorer" das Projektfenster öffnen.
4) Dort den Baum "VBAProject ( aufklappen
5) Dort durch Doppeklick auf "DieseArbeitsmappe" das Modul öffnen
6) In Modulfenster "DieseArbeitsmappe (Code)" den nachfolgenden Code kopieren.
7) Fertig. Nun wird beim jeden Öffnen einer Rechnungsdatei in der Zelle "NeuRENummer" die letzte vergebene Rechnungsnummer PLUS 1 angezeigt. Also somit immer die nächste zu vergebende Rechnungsnummer.

'Start VBA Code
Option Explicit
Private Sub Workbook_Open()
Dim reNumber        As Long
With Application.ActiveSheet
reNumber = CLng(GetSetting(RegAppName, RegSection, RegKeyNumber, 0))
.Range("NeuRENummer").Value = reNumber + 1
End With
End Sub
'Ende VBA Code

Problem 3 verstehe ich nicht ganz. Klar ist, du legst in einer extra Excel-Datei z.B. Kundendaten.xls ein Blatt mit den Kundendaten an. Also z.B. Spalten Firma, Ansprechpartner, Adresse, Telefonnummer. Was ist nun das Problem??? Was soll genau automatisiert werden?
Anzeige
AW: Hilfe, latein am Ende... wie Speichern?
16.01.2004 12:07:27
Jürgen
Hallo Alex,
zu Prop.3:
Ich möchte über einen Button "Kunde speichern" die Daten in eine externe Arbeitsmappe speichern und über einen Button "Kunde laden" eine Auswahl der Namen haben, worüber dann die Daten in die Grundtabelle eingefügt werden. WIE?
Gruß Jürgen
prob 3
16.01.2004 15:39:39
Jürgen
genau! ich möchte auf den button laden klicken, aus der adressen Tabelle meinen kunden auswählen, nach dem auswählen sollen die Daten automatisch in die rechnungstabelle importiert werden.
mit dem Button Speichern möchte ich bei einem Neukunden der eine Rechnung erhalten hat die daten in die Adressen tabelle exportieren.
weiß nicht wie.
und vielen dank für die erste hilfe hat wunderbar funktioniert, bis auf das zuweisen der makro auf dem button
Anzeige
AW: prob 3
17.01.2004 10:21:59
geri
Hallo Jürgen
hatte Dir gestern Musterfile angeboten
mein Konzept ist aber etwas anders, habe alles in einem File
d.h. Datenbank, Artikel, Rabattstaffel, ....
in Rechnung wähle ich Kunde aus und es wird rechnungsnummer vergeben
beim speichern wird Rechnung als Einzelblatt gespeichert.
falls Interesse am Muster gib mir Adresse dann sende ich Dir
vielleicht zeigt es Dir auch nur andere Möglichkeit auf.

gruss geri
AW: prob 3 an Geri
19.01.2004 07:48:09
Jürgen
Hallo Geri,
Ich habe fast alle Probs geknackt, jetzt fehlt mir nur noch eine Funktion, mit welcher ich die Kundendaten in eine Tabelle ( verschiedene Spalten ) auf Knopfdruck ablegen kann. die Funktion muß aber die erste freie Zeile abfragen und in diese dann die entsprechenden Werte ablegen. An deiner Tabelle bin ich schon interresiert, im Austausch kann ich dir ja mein Programm mal mailen. Bis dann, Jürgen
Anzeige
AW: prob 3 an Geri
19.01.2004 08:23:42
Jürgen
P.S. hier die E-Mail Adresse, für alle die das Rechnungsprogramm mal sichten wollen.
für Verbesserungen bin ich dankbar.
: service@hantke.de :-)
AW: prob 3 an Geri
19.01.2004 10:55:21
geri
Hallo Jürgen
probiers hiermit Taste ist dann kein Problem mehr

Sub DatenübernahmeTabelle()
Dim i As Integer
i = Sheets("Tabelle2").Cells(Cells.Rows.Count, 1).End(xlUp).Row + 1
If i < 4 Then i = 4 ' Startzeile für Eintrag
' ZIELBEREICH			'QUELLBEREICH
Sheets("Tabelle2").Cells(i, 1) = Sheets("Tabelle1").Cells(9, 1)
Sheets("Tabelle2").Cells(i, 2) = Sheets("Tabelle1").Cells(10, 1)
Sheets("Tabelle2").Cells(i, 3) = Sheets("Tabelle1").Cells(11, 1)
Sheets("Tabelle2").Cells(i, 4) = Sheets("Tabelle1").Cells(4, 2)
Sheets("Tabelle2").Cells(i, 6) = Sheets("Tabelle1").Cells(6, 5)
Sheets("Tabelle2").Cells(i, 7) = Sheets("Tabelle1").Cells(6, 7)
'cells(zeile,spalte) anpassen
End Sub

der Übertrag beginnt bei Zeile 4 im Muster
gruss geri
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige