Betrifft: Rechnung
von: SoulOpa
Hallo und einen schönen guten Morgen,
ich benötige mal wieder Eure Hilfe.
Ich habe mit meinen wenigen Excel kenntnissen eine Rechnung mit Stammdaten und ein Rechnungsverwaltung angelegt.
Nun möchte ich wenn ich in den Stammdaten was eintrage dieses in der Rechnung erscheint, dieses klappt auch so weit doch wenn ich zum Beispiel in den Stamm daten ein Feld leer lasse erscheint bei mir in der Rechnung immer der Wert 0
Die Daten hole ich mir mit folgendem Code =Stammdaten!C7 wie kann ich das verhindern?
im gleichen Blatt verwende ich diesen Code =WENN(C22=0;"";Formel) Funktioniert einwand frei.
Des weiteren habe ich noch eine Frage!
ich habe ein Datenblatt mit dem Namen Rechnungsverwaltung und würde nun gerne wenn z.B in irgend einer Celle Bezahlt erscheint die ganze Zeile dann automatisch in das Datenblatt Rechnung Bezahlt nach Datum Geld Eingang Sotiert übertragen wird. Ist dieses zu realisieren?
Ich sende mal die Musterdatei zum anschauen mit. https://www.herber.de/bbs/user/66914.zip
Wenn ja, würde ich mich über Eure Hilfe sehr freuen.
mfg Andi
Betrifft: AW: Rechnung
von: Hajo_Zi
Geschrieben am: 01.01.2010 09:49:18
Hallo Andi,
zu Teil 1 benutze doch Deine Formel ersetze C22 duch Stammdaten!C7
Betrifft: AW: Rechnung
von: SoulOpa
Geschrieben am: 01.01.2010 10:07:57
Hallo Hajo und einen gutes Neues,
Danke für Deine Hilfe im ersten Teil! klappt einwandfrei.
Grüße und ein schönes Wochenende zu Dir.
mfg
Betrifft: AW: Rechnung
von: SoulOpa
Betrifft: AW: Rechnung
von: Josef Ehrensberger
' **********************************************************************
' Modul: Tabelle5 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit
Private Sub Worksheet_Activate()
Dim rng As Range, rngRgNum As Range, rngCopy As Range
Dim lngNext As Long, vntRet As Variant
On Error GoTo Errexit
Application.EnableEvents = False
Application.ScreenUpdating = False
With Sheets("Rechnungsverwaltung")
Set rngRgNum = Me.Range("C:C")
lngNext = Application.Max(2, Me.Cells(Me.Rows.Count, 1).End(xlUp).Row + 1)
For Each rng In .Range("I2:I" & CStr(.Cells(.Rows.Count, 9).End(xlUp).Row))
If LCase(rng.Text) = "bezahlt" Then
vntRet = Application.Match(rng.Offset(0, -6), rngRgNum, 0)
If IsError(vntRet) Then
If rngCopy Is Nothing Then
Set rngCopy = rng.EntireRow
Else
Set rngCopy = Union(rngCopy, rng.EntireRow)
End If
End If
End If
Next
End With
If Not rngCopy Is Nothing Then
rngCopy.Copy
Me.Cells(lngNext, 1).PasteSpecial xlValues
Me.Cells(lngNext, 1).PasteSpecial xlFormats
Application.CutCopyMode = False
Me.Range("A1").CurrentRegion.Sort Key1:=Me.Range("H1"), Order1:=xlDescending, _
Key2:=Me.Range("D1"), Order2:=xlDescending, _
Header:=xlGuess
Me.Range("A2").Select
End If
Errexit:
Application.EnableEvents = True
Application.CutCopyMode = False
Application.ScreenUpdating = True
Set rng = Nothing
Set rngRgNum = Nothing
Set rngCopy = Nothing
End Sub
Betrifft: AW: Rechnung
von: SoulOpa
Betrifft: AW: Rechnung
von: Josef Ehrensberger
Betrifft: AW: Rechnung
von: SoulOpa
Geschrieben am: 01.01.2010 19:17:19
Hallo Sepp,
Ok Funktioniert! habe die Mappe her genommen die ich hoch geladen habe. Die Testmappe hat wohl einen Fehler.
Vielen Dank für Deine schnelle Hilfe.
schönes Wochenende
mfg Andi
Betrifft: Frage an Hajo
von: SoulOpa
Private Sub CommandButton1_Click()
'* H. Ziplies *
'* 04.07.2007 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/
' Kopie einer Tabelle ohne Formeln mit Format, Register nicht geschützt
Workbooks.Add
Application.ScreenUpdating = False ' Bildschirmaktualisierung aus
With ThisWorkbook ' Datei mit Code
ActiveWorkbook.SaveAs .Path & "\Kopie_von_" & ThisWorkbook.Name ' neue Datei Workbooks. _
_
Add
Worksheets.Add
.Worksheets("Tabelle2").Cells.Copy
With ActiveWorkbook.ActiveSheet.Cells
.PasteSpecial Paste:=xlPasteValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
ActiveWorkbook.ActiveSheet.Name = "Tabelle2 Duplikat"
Application.CutCopyMode = False ' Zwischenspeicher löschen
MsgBox "Reine Datentabelle gespeichert als: " & .Path & "\Kopie_von_" & ThisWorkbook. _
Name
ActiveWorkbook.Close True ' Dateikopie schließen mit _
speichern
End With
Application.ScreenUpdating = True ' Bildschirmaktualisierung ein
End Sub
Betrifft: Frage an Hajo
von: SoulOpa
Private Sub CommandButton1_Click()
'* H. Ziplies *
'* 04.07.2007 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/
' Kopie einer Tabelle ohne Formeln mit Format, Register nicht geschützt
Workbooks.Add
Application.ScreenUpdating = False ' Bildschirmaktualisierung aus
With ThisWorkbook ' Datei mit Code
ActiveWorkbook.SaveAs .Path & "\Kopie_von_" & ThisWorkbook.Name ' neue Datei Workbooks. _
_
_
Add
Worksheets.Add
.Worksheets("Tabelle2").Cells.Copy
With ActiveWorkbook.ActiveSheet.Cells
.PasteSpecial Paste:=xlPasteValues ' Werte
.PasteSpecial Paste:=xlFormats ' Formate
End With
ActiveWorkbook.ActiveSheet.Name = "Tabelle2 Duplikat"
Application.CutCopyMode = False ' Zwischenspeicher löschen
MsgBox "Reine Datentabelle gespeichert als: " & .Path & "\Kopie_von_" & ThisWorkbook. _
Name
ActiveWorkbook.Close True ' Dateikopie schließen mit _
speichern
End With
Application.ScreenUpdating = True ' Bildschirmaktualisierung ein
End Sub
Betrifft: AW: Frage an Hajo
von: fcs
Sub RechnungKopieSichern()
Dim wksRechnung As Worksheet
Dim wbKopie As Workbook, wksKopie As Worksheet
Dim DName As String
Const PfadBackUp = "C:\Rechnungs Backup\"
On Error GoTo Fehler
Set wksRechnung = ActiveSheet
DName = [A11] & "__" & [L1] & "__" & Format([E6], "hh-mm-ss") & ".xls"
'Neue Datei mit einem Tabellenblatt für Kopie anlegen
Application.ScreenUpdating = False
Set wbKopie = Workbooks.Add(Template:=xlWBATWorksheet)
Set wksKopie = wbKopie.Worksheets(1)
With wksRechnung
'Blattnamen übernehmen
wksKopie.Name = .Name
With .Range(.PageSetup.PrintArea)
'Spaltenformate des Druckbereichs der Rechnung kopieren
.EntireColumn.Copy
wksKopie.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
'Druckbereichswerte und -formate kopieren
.Copy
wksKopie.Cells(.Row, 1).PasteSpecial Paste:=xlPasteFormats
wksKopie.Cells(.Row, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'Überzählige Zeilen unterhalb Druckbereich in Kopie löschen
If wksRechnung.Cells.SpecialCells(xlCellTypeLastCell).Row > .Row + .Rows.Count - 1 Then
wksKopie.Range(wksKopie.Rows(.Row + .Rows.Count), _
wksKopie.Rows(wksRechnung.Cells.SpecialCells(xlCellTypeLastCell).Row)).Delete
End If
'Überzählige Zeilen oberhalb Druckbereich in Kopie löschen
If .Row > 1 Then
wksKopie.Range(wksKopie.Rows(1), wksKopie.Rows(.Row - 1)).Delete
End If
End With
End With
With wksKopie
Range("A1").Select
'Blatteinstellungen übertragen
With .PageSetup
.Orientation = wksRechnung.PageSetup.Orientation
.PaperSize = wksRechnung.PageSetup.PaperSize
.LeftMargin = wksRechnung.PageSetup.LeftMargin
.RightMargin = wksRechnung.PageSetup.RightMargin
.TopMargin = wksRechnung.PageSetup.TopMargin
.BottomMargin = wksRechnung.PageSetup.BottomMargin
.FooterMargin = wksRechnung.PageSetup.FooterMargin
.HeaderMargin = wksRechnung.PageSetup.HeaderMargin
.LeftFooter = wksRechnung.PageSetup.LeftFooter
.CenterFooter = wksRechnung.PageSetup.CenterFooter
.RightFooter = wksRechnung.PageSetup.RightFooter
.LeftHeader = wksRechnung.PageSetup.LeftHeader
.CenterHeader = wksRechnung.PageSetup.CenterHeader
.RightHeader = wksRechnung.PageSetup.RightHeader
.PrintGridlines = wksRechnung.PageSetup.PrintGridlines
End With
'Blattschutz einrichten
.Cells.Locked = True
.Protect
End With
With wbKopie
'Dokumenteigenschaften für Kopie festlegen
.BuiltinDocumentProperties("Title") = wksRechnung.Range("A11") _
& " - " & wksRechnung.Range("L1")
.BuiltinDocumentProperties("Subject") = "Rechnung Archiv-Kopie"
.BuiltinDocumentProperties("Author") = _
ThisWorkbook.BuiltinDocumentProperties("Author")
'Kopie Speichern , nur schreibgeschützt öffnen
.SaveAs Filename:=PfadBackUp & DName, addtomru:=True, ReadOnlyRecommended:=True
.Close
End With
Fehler:
Application.ScreenUpdating = True
With Err
Select Case .Number
Case 0 ' Kein fehler
MsgBox "Rechnung wurde erfolgreich Archiviert und Kopiert! " _
& "Die Rechnungs Kopie wurde im Verzeichniss """ _
& PfadBackUp & """ gespeichert"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub
Betrifft: AW: Frage an Hajo
von: SoulOpa
Betrifft: AW: Frage an Hajo
von: fcs
Sub RechnungalsPDF()
Dim wksRechnung As Worksheet
Dim wbKopie As Workbook, wksKopie As Worksheet, strNameKopie As String
Dim strDruckerAktiv As String
Const DruckerPDF As String = "FreePDF - PDF-Verzeichnis" 'Name PDF-Drucker
Dim DName As String
Const PfadBackUp = "C:\Rechnungs Backup\"
' Const PfadBackUp = "C:\Users\Public\Test\Data\" 'Verzeichnis für Temporäre Kopie
On Error GoTo Fehler
Set wksRechnung = ActiveSheet
DName = [A11] & "__" & [L1] & "__" & Format([E6], "hh-mm-ss") & ".xls"
Application.ScreenUpdating = False
'Rechnungsblatt in neue Datei kopieren
wksRechnung.Copy
Set wbKopie = ActiveWorkbook
Set wksKopie = wbKopie.Worksheets(1)
With wbKopie
'Kopie temporär Speichern
.SaveAs Filename:=PfadBackUp & DName
strNameKopie = wbKopie.FullName 'Dateinamen merken
strDruckerAktiv = Application.ActivePrinter 'Aktiven Drucker merken
'PDF-Datei erstellen
wksKopie.PrintOut ActivePrinter:=DruckerPDF
'Drucker zurücksetzen
Application.ActivePrinter = strDruckerAktiv
'Temporäre Datei schließen und löschen
wbKopie.Close savechanges:=False
VBA.Kill strNameKopie
End With
Fehler:
Application.ScreenUpdating = True
With Err
Select Case .Number
Case 0 ' Kein fehler
MsgBox "Rechnung wurde erfolgreich als PDF archiviert! " _
& "Die Rechnungs Kopie wurde im Verzeichniss """ _
& PfadBackUp & """ gespeichert"
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub
Betrifft: AW: Frage an Franz
von: SoulOpa
Betrifft: AW: Frage an Franz
von: fcs
Betrifft: AW: Frage an Franz
von: SoulOpa
Geschrieben am: 04.01.2010 12:25:24
Hallo Franz,
hiermit wollte ich mich noch einmal recht herzlich für deine hilfe und die Zeit die Du für mich geopfert hast bei Dir bedanken :-) klappt alles auf anhieb und ohne Probleme. Vielen Vielen Dank.
Auch den anderen Helfern ein recht herzliches Danke schööööön.
mfg Andi
Betrifft: zu
von: zu
Geschrieben am: 04.01.2010 15:44:55
zu