Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listeneintrag Uhrzeit zum drucken verändern
#31
Hallöchen,

hier erst mal zum Test ein kleines Makro. Um die vor einem Wechsel aktive Zelle zu identifizieren, nimmst Du eine Public Variable. Beim Zellwechsel wird darin die letzte Zelladresse gespeichert. Nach dem Öffnen der Datei ist diese Variable jedoch noch leer, eventuell befüllst Du sie an der Stelle. Musst nur schauen, dass Du dabei auf dem richtigen Blatt bist Smile

Option Explicit
Public strLast As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If strLast <> "" Then
  Range(strLast).Interior.Color = xlNone
End If
strLast = Target.Address
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#32
Code:
Private Sub cmdPrint_Click()
Dim zeLB As Long, spLB As Long
Dim zeTB As Long, spTB As Long
Dim spab As Long, spac As Long
Dim agTB As Long, agLB As Long
Dim allesDrucken As Boolean
 
   ' Zellen leeren
   
   Range("Druckvorlage!A5:P1000") = ""  'Bereich in den die Ergebnis eingetragen werden
     
   '--- Drucker auswählen
   Application.Dialogs(xlDialogPrinterSetup).Show
   
   With ActiveSheet.PageSetup
   
   .LeftFooter = "&""Calibri""&10&BBitte beachten Sie:&B" & Chr(10) & "&8Terminabsage nur in dringenden" & Chr(10) & "Fällen, spätestens jedoch " & Chr(10) & "24 Stunden vor der Behandlung." & Chr(10) & "Nicht rechtzeitig abgesagte Termine" & Chr(10) & "werden privat in Rechnung gestellt."
       
    '.RightFooter = "&""Calibri""&8&BHinweis für Dauerpatienten:&B" & Chr(10) & "Um Behandlungspausen zu vermeiden" '& Chr(10) & "sowie Termin- und Therapeutenwünsche" & Chr(10) & "zu berücksichtigen, bitte Folgetermine" & Chr(10) & "8 Wochen im Voraus vereinbaren!" & Chr(10) & "&BMittagpause 12 - 14 Uhr&B"

   End With
   '-- Prüfen, ob alles gedruckt werden muss
   For zeLB = 1 To lstResponse.ListCount - 1
       allesDrucken = allesDrucken Or lstResponse.Selected(zeLB)   'Zeile aus der Listbox
   Next
   zeTB = 3
   spLB = 7
   
   '--- selektierte Listboxeinträge in Zellen schreiben
   For zeLB = 1 To lstResponse.ListCount - 1
       If lstResponse.Selected(zeLB) Or Not allesDrucken Then
           zeTB = zeTB + 1
          Select Case UCase(lstResponse.List(zeLB, 4))
              Case "KG", "BAD", "BANDAGE", "LYM30", "LYM45", "LYM60", "MASSAGE", "FUSSPFLEGE", "PODOLOGIE", "FUSSREFLEX", "CMD", "VM", "BM"
                  Sheets("Druckvorlage").Cells(zeTB, spLB + 1) = Format(CDate(lstResponse.List(zeLB, 2)) + TimeSerial(0, 20, 0), "hh:nn")
              Case "PM40", "PVM40", "CMDP40", "PKG40"
                  Sheets("Druckvorlage").Cells(zeTB, spLB + 1) = Format(CDate(lstResponse.List(zeLB, 2)) - TimeSerial(0, 20, 0), "hh:nn")
              Case Else
              Sheets("Druckvorlage").Cells(zeTB, spLB + 1) = lstResponse.List(zeLB, 2)
          End Select
            For spLB = 2 To lstResponse.ColumnCount - 1  'Ab welcher Spalte aus der Suchergebnisliste soll gedruckt werden
               Sheets("Druckvorlage").Cells(zeTB, spLB + 1) = lstResponse.List(zeLB, spLB) 'zeTB Zeile, spTB Spalte
           Next
           For spab = 1 To 1
        spac = 1   'Spalte 1 Patient
        agTB = 1   'Zeile 1
        agLB = 6   'Spalte 6 (D)  'Patientenname eintragen
        Sheets("Druckvorlage").Cells(agTB, agLB) = lstResponse.List(spab, spac)
    Next
           End If
           
   Next
   Sheets("Druckvorlage").Visible = True
   ' Drucke Tabellenblatt
   Worksheets("Druckvorlage").PrintOut
   Sheets("Druckvorlage").Visible = True
End Sub
In diesem Code bekomme ich immer an dieser Stelle,  Sheets("Druckvorlage").Cells(agTB, agLB) = lstResponse.List(spab, spac), beim Ausdrucken des Selektierten Suchergebnis aus der Listbox
, aber nicht bei allen Ergebnissen, oft den Laufzeitfehler 381.
Antworten Top
#33
Hallöchen,

überprüfe doch mal den Inhalt der beiden Variablen sowie insgesamt den Ausdruck
lstResponse.List(spab, spac)

(Könntest Du auch vor der Zeile mit Debug.Print lstResponse.List(spab, spac) ausgeben)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#34
Hallo,

lstResponse.List(spab, spac)

In lstResponse.List steht " Eigenschaft List konnte nicht abgerufen werden"
spab = 1
spac = 1
Antworten Top
#35
Hi,
Hast Du eventuell nur eine Spalte in der Listbox oder nur einen oder keinen Eintrag drin?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#36
Hallo,

habe es gerade mal folgendes ausprobiert:

Suche mit nur einem Ergebnis in der Listbox und mit 2 Ergebnissen.

Nur 1 Ergebnis wird nicht gedruckt und es kommt der Fehler.
Mit 2 geht es.

Was kann ich machen das er auch den einen Eintrag bearbeitet?

Gruß Arnold
Antworten Top
#37
Hallöchen,

wie gesagt, prüfe mal die Variablen usw. Sind die ok?

Deine Schleifen sind nicht besonders groß, z.B.

For zeLB = 1 To lstResponse.ListCount - 1

Reicht das aus?

So was

For spab = 1 To 1

macht eher sinn, wenn Du nach Codezeilen bezahlt wirst. Smile Eine Schleife von 1 bis 1 wird genau 1x durchlaufen
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste