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

860to864: mit SpinButton weiterschalten

mit SpinButton weiterschalten
07.04.2007 10:32:23
Wolfgang
Hallo,
den untenstehenden Code habe ich der Excel-CD entnommen; er dient im Grunde der Serienbrieferstellung;
Ich würde gerne erreichen, dass die Datensätze innerhalb des Tabellenblattes "weitergeschaltet" werden können (SpinButton?), um ggfs. das jeweils einzelne Dokument (Tabellenblatt) auszudrucken. Die Anrede habe ich zunächst mit "Sehr geehrte/r" gelöst. Gibt es da eine Möglichkeit mit Wenn, dann - also, wenn Spalte N= Frau dann "Sehr geehrte Frau.." und wenn Spalte N = Herr, dann....; Kann auch über Optionsfelder vorbestimmt werden, welches Bezugstabellenblatt angesprochen werden soll (es gibt drei verschiedene Tabellenblätter/Kalenderblätter)?
Wie müßte ich den Code ändern?
Danke schon jetzt wieder allen für die Rückmeldung.
Gruß - Wolfgang
Option Explicit

Sub Bescheinigung()
Dim iRow As Integer
iRow = 2
With Worksheets("Kalender1")
Do Until IsEmpty(.Cells(iRow, 1))
Range("A8:A11").ClearContents
'Anrede
Range("A8").Value = .Cells(iRow, 14).Value
'Vorname
Range("A9").Value = .Cells(iRow, 4).Value & " " & .Cells(iRow, 3).Value
'Name
'Range("B9").Value = .Cells(iRow, 3).Value
'Strasse
Range("A10").Value = .Cells(iRow, 7).Value
'Wohnort
Range("A11").Value = .Cells(iRow, 8).Value
'Anrede
Range("A21").Value = "Sehr geehrte/r" & " " & .Cells(iRow, 14).Value & " " & .Cells( _
iRow, 3).Value & ","
'Range("A30").Value = .Cells(iRow, 4).Value & " " & .Cells(iRow, 5).Value
Range("A36").Value = " am " & .Cells(iRow, 1).Value & " um " & (.Cells(iRow, 2).Value)
iRow = iRow + 1
'If iRow = 26 Then End
ActiveSheet.PrintPreview
Loop
End With
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit SpinButton weiterschalten
07.04.2007 12:07:28
Daniel
Hallo
das Anredeproblem kannst du folgendermaßen lösen:

Range("A21").Value = "Sehr geehrte"
if .Cells(iRow, 14).Value = "Herr" then range("A21")=range("A21") & "r"
range("A21").value = Range("A21").value  & " " &  .Cells(iRow, 14).Value & " " & .Cells( _
iRow, 3).Value & ","
Um einzelne Bescheinigungen drucken zu können, würde ich bei deinen VBA-Kenntnissen folgende Methode vorschlagen:
- den Code wie unten gezeigt ändern, dann kannst du
- in der Adressenliste die zu druckenden Namen ganz normal selektieren
- dann das Makro starten. alle selektierten Zeilen werden gedruckt
Sub Bescheinigung()
Dim iRow As Integer
dim Zelle as range
dim shVorlage as worksheet
Dim Anrede as string
set shVorlage = sheets("Tabelle1") '
Gruß, Daniel
ps
hab gerade kein Excel auf dem Rechner, daher nicht getestet
Anzeige
AW: mit SpinButton weiterschalten
07.04.2007 12:42:46
Wolfgang
Hallo Daniel,
danke zunächst für Deine schnelle Rückantwort; ich habe versucht, den Code einzubinden. Momentan werden mir die Daten dabei aber nicht in "Bescheinigung" angezeigt; Bescheinigung ist das Tabellenblatt auf dem sich auch die Druckschaltfläche und SpinButton befinden - hierher sollen auch die Daten aus dem Tabellenblatt Kalender 1 importiert werden. Was müßte ich da verändern? - Ich habe auch unter shVorlage = sheets("Tabelle1") beide Tabellenblattnamen einmal eingegeben, beides ohne Erfolg. Hättest Du da noch eine Idee? - Ach so, noch eine Frage, unter Range("A36").... soll nach "um" ein Datum erscheinen, wie müsste ich da das Datumsformat bestimmen (habe mir schon die Zähne daran ausgebissen)?; Danke schon jetzt wieder.
Gruß - Wolfgang
Anzeige
AW: mit SpinButton weiterschalten
07.04.2007 14:43:55
Daniel
Hallo
das Makro ist so aufgebaut, daß du
  • das Blatt mit den Addressen aktivieren musst

  • dort alle Namen, für die du eine Bescheinigung drucken willst, auswählen musst (ganz normal, Zellen anklicken und dabei STRG gedrückt halten)

  • dann das Makro startest

  • das heißt, der Button zum Makro-Start muß auf das Blatt "Kalender1", der Variable shVorlage musst du folgendermassen festlegen: set shVorlage = Sheets("Bescheinigung")
    diese Methode sieht zwar nicht so professionel aus, ist aber einfach zu programmieren und später auch in der Anwendung schneller als die Verwendung von Spin-Buttons zur Auswahl der Namen.
    Vor allem kannst du mit diesem Makro eine, alle oder beliebig viele Bescheinigungen drucken, ganz egal. Es hängt nur davon ab, welche Zellen du selektiert hast.
    Du könntest auch mehrere Blätter mit Address-Daten haben und immer noch das gleiche Makro verwenden, weil es sich für die Addressdaten immer auf das gerade Aktive Blatt bezieht.
    zum Datum
    das richtige Datumsformat bekommst du so
     shVorlage.Range("A36").Value = " am " & format(Cells(iRow, 1).Value,"DD.MM.YYYY") & " um " & format(Cells(iRow, 2) .Value,"hh:mm")
    
    Gruß, Daniel
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige