Office: Wenn oder/und .. oder .. oder/und

Helfe beim Thema Wenn oder/und .. oder .. oder/und in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo @knobbi38 Meiner Meinung nach muss es nicht zurückgesetzt werden. Hauptsache es erscheint ein komplizierter Englisch-Satz. Das Tabellenblatt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fedi, 22. Juni 2026.

  1. Fedi hat Ahnung

    Wenn oder/und .. oder .. oder/und


    Hallo @knobbi38
    Meiner Meinung nach muss es nicht zurückgesetzt werden. Hauptsache es erscheint ein komplizierter Englisch-Satz.
    Das Tabellenblatt heisst "Tenses".
    Falls Du beim Makro helfen kannst -> dann Prost!
    Gruss Fedi
     
  2. knobbi38 hat Ahnung
    Hier mal ein vorläufiger Entwurf, den du ggf. dann noch anpassen mußt.
    Code:
    Option Explicit
    
    ' Konstanten für die Konfiguration
    Private Const strTabName   As String = "Tabelle1"
    Private Const lngStartZeil As Long   = 3
    Private Const lngQuellSpalte As Long   = 28
    Private Const strZielZelle As String = "A7"
    
    Sub CopyContent(Optional Reset As Boolean = False)
      ' Statischer Offset speichert Zeilenfortschritt
      Static lngOffset  As Long
      Dim rngQuellZelle  As Range
    
      ' Manueller Reset über Parameter 
      If Reset Then
        lngOffset = 0
        Exit Sub
      End If
    
      ' Qualifizierter Zugriff auf Tabellenblatt
      With ThisWorkbook.Worksheets(strTabName)
        Set rngQuellZelle = .Cells(lngStartZeil, lngQuellSpalte). _
                           Offset(lngOffset, 0)
    
        ' Prüfung auf Datenende
        If LenB(Trim$(rngQuellZelle.Value)) > 0 Then
          ' Wert kopieren
          .Range(strZielZelle).Value = rngQuellZelle.Value
          ' Offset für nächsten Klick hochzählen
          lngOffset = lngOffset + 1
        Else
          ' Akustisches Signal und automatischer Reset bei Leerzelle
          Beep
          lngOffset = 0
        End If
      End With
    End Sub
    
    ' Makro-Zuweisung für Reset-Button mit ausgelagerter Meldung
    Sub ResetCopyContent()
      CopyContent Reset:=True
      MsgBox "Zähler erfolgreich zurückgesetzt.", _
             vbInformation, "Reset"
    End Sub
    
    Knobbi38
     
    Zuletzt bearbeitet: 19. August 2026 um 18:10 Uhr
  3. Fedi hat Ahnung
    Merci Knobbi für den Einsatz
    Dieser Code ist nicht ansteuerbar :-( (? )
    Fedi
     
  4. knobbi38 hat Ahnung

    Wenn oder/und .. oder .. oder/und

    Was meinst du mit ansteuerbar?
     
  5. Fedi hat Ahnung
    Kann ich nicht auslösen.
     
  6. knobbi38 hat Ahnung
    Du kannst das Makro CopyContent nicht einer Schaltfläche oder einem Shape zuweisen?
    Wegen des optionalen Arguments zeigt das Makrofenster CopyContent nicht an. Dort musst du den Makronamen selber eingeben.
     
  7. Fedi hat Ahnung
    Das klappt nicht. Ich habe gerade 10' geknobelt, hilft nicht. Neue Situation für mich...
    Die Zeile mit CopyContent kann ich nicht verändern - sie wird sonst unbrauchbar.
    Salut Fedi
     
  8. Fedi hat Ahnung

    Wenn oder/und .. oder .. oder/und

    und ...
    etwas seltsam ist, dass bei mir das Makro mit einer Linie unterteilt wird.

    Option Explicit


    ' Konstanten für die Konfiguration

    Private Const strTabName As String = "Tenses"

    Private Const lngStartZeil As Long = 3

    Private Const lngQuellSpalte As Long = 28

    Private Const strZielZell As String = "A7"

    __________________________________

    Sub CopyContent(Optional Reset As Boolean = False)

    ' Statischer Offset speichert Zeilenfortschritt

    Static lngOffset As Long

    Dim rngQuellZelle As Range


    ' Manueller Reset über Parameter
     
  9. knobbi38 hat Ahnung
    ... dann ist wahrscheinlich beim Kopieren des Codes etwas schief gelaufen. Kopiere es nochmal in ein leere Textdatei im Windows Editor. Bei mir funktioniert das problemlos.
     
  10. knobbi38 hat Ahnung
    Hallo Fedi,

    hier nochmal das gleiche Modul nach ein bißchen Refactoring (die Namenskonventionen haben noch nicht gestimmt).
    Ich habe die Prozedur umbenannt und eine zusätzliche Makro-Wrapper-Prozedur eingefügt, welche dann für einen Makroaufruf genutzt werden kann.

    Code:
    Option Explicit
    
    ' Konstanten für die Konfiguration
    Private Const TABNAME     As String = "Tabelle1"
    Private Const STARTZEILE  As Long = 3
    Private Const QUELLSPALTE As Long = 28
    Private Const ZIELZELLE   As String = "A7"
    
    Private Sub DoCopyContent(Optional Reset As Boolean = False)
      ' Statischer Offset speichert Zeilenfortschritt
      Static lngOffset  As Long
      Dim rngQuellZelle  As Range
    
      ' Manueller Reset über Parameter
      If Reset Then
        lngOffset = 0
        Exit Sub
      End If
    
      ' Qualifizierter Zugriff auf Tabellenblatt
      With ThisWorkbook.Worksheets(TABNAME)
        Set rngQuellZelle = .Cells(STARTZEILE, QUELLSPALTE). _
                           Offset(lngOffset, 0)
    
        ' Prüfung auf Datenende
        If LenB(Trim$(rngQuellZelle.Value)) > 0 Then
          ' Wert kopieren
          .Range(ZIELZELLE).Value = rngQuellZelle.Value
          ' Offset für nächsten Klick hochzählen
          lngOffset = lngOffset + 1
        Else
          ' Akustisches Signal und automatischer Reset bei Leerzelle
          Beep
          lngOffset = 0
        End If
      End With
    End Sub
    
    ' Makro-Zuweisung für Reset-Button
    Sub ResetCopyContent()
      DoCopyContent Reset:=True
      MsgBox "Zähler erfolgreich zurückgesetzt.", _
             vbInformation, "Reset"
    End Sub
    
    ' Makro-Zuweisung für Copy-Button
    Sub CopyContent()
      DoCopyContent Reset:=False
    End Sub
    
    Mit {ALT}+{F8} solltest du das Makro jetzt ausführen können.
     
  11. Fedi hat Ahnung
    Vielen Dank Knobbi38 für Dein Engagement.
    Private Sub DoCopyContent kann ich nicht starten. Ich finde keinen Weg.
    Unter dem Makro Modul 5 (Dort habe ich das Makro abgelegt) finde ich es nicht.
    ResetCopyContent und CopyContent sind im Modul 5 jedoch auffindbar.

    Noch immer habe ich die Trennlinie vor dem Makrostartbefehl -> Private Sub DoCopyContent(Optional Reset As Boolean = False), obwohl mit dem Editor eingefügt.

    So eine Situation habe noch nie gehabt. Was mache ich falsch?
    Salut Fedi
     
  12. knobbi38 hat Ahnung
    Natürlich kann DoCopyContent nicht direkt gestartet werden, weil diese 'Private' ist - deshalb ja die beiden anderen Makros.
    Die Trennline kann ich nicht erklären, es sein denn, du hast in der VBE Extras->Optionen die Prozedurtrennlinien aktiviert.
    Leider kann ich dir nicht sagen, was du falsch machst. Eine Zuweisung des Makros z.B. an ein Shape sollte durchaus möglich sein.
     
  13. Fedi hat Ahnung

    Wenn oder/und .. oder .. oder/und

    @knobbi38
    Also ....
    ... ich hatte zu weit gesucht.

    Dein Makro läuft super. Vielen Dank für Deine grossartige Hilfe.
    Damit wird mein File meinen Vorstellung gerecht und das macht Freude.
    Mir bleiben nur noch "kosmetische Arbeiten" zu machen.
    Ich bedanke mich bei allen, die mich tatkräftig unterstützt haben.
    Grüsse Fedi

    My computer beats me at chess, bit I sure beat it at kickboxing.
     
  14. Fedi hat Ahnung
    Und jetzt teile ich das File mit vielleicht interessierten Familienoberhäuptern, die den Kindern helfen möchten.
    Fedi
     
Thema:

Wenn oder/und .. oder .. oder/und

Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden