Buchstabe "a" soll in den dazwischenliegenden Zellen erscheinen
#1
Das heißt: Wenn ich in einer beliebigen Zelle innerhalb der Tabelle den Buchstaben „a“ und „v“ einfüge, dann soll in den dazwischenliegenden Zellen der Buchstabe „a“ erscheinen. Das Ganze soll auch funktionieren, wenn ich beispielsweise den Buchstaben „a“ und „bv“ einfüge (siehe Tabelle!) Vorab bedanke ich mich für die Unterstützung! Viele Grüße Dirk


Angehängte Dateien
.xlsx   Tabelle1.xlsx (Größe: 11,83 KB / Downloads: 14)
Top
#2
Hallöchen,

ginge z.B. so - Code gehört in das Modul vom Tabellenblatt, wo er wirken soll.

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'Variablendeklarationen
Dim iCnt1%, iCnt2%
'Ereignisse deaktivieren
Application.EnableEvents = False
'Wenn mehr als eine Zelle betroffen, dann Ende
If Target.Cells.Count > 1 Then GoTo ende
'Wenn was anderes al b oder bv eingegeben wurde, dann Ende
If Target.Value <> "b" And Target.Value <> "bv" Then GoTo ende
'Wenn ausserhalb des Bereichs, dann Ende
If Intersect(Target, Range("C5:N15")) Is Nothing Then GoTo ende
'Schleife ueber alle Zeilen von unten
For iCnt1 = Target.Row To 5 Step -1
  'Schleife ueber alle Spalten von rechts
  For iCnt2 = 14 To 3 Step -1
    'In Eingabezeile erst neben der Eingabe beginnen
    If Target.Row = iCnt1 And Target.Column < (iCnt2 + 1) Then
    Else
      'Wenn v drin steht, dann Ende
      If Cells(iCnt1, iCnt2).Value = "v" Then GoTo ende
      'a eintragen
      Cells(iCnt1, iCnt2).Value = "a"
    'Ende In Eingabezeile erst neben der Eingabe beginnen
    End If
  'Ende Schleife ueber alle Spalten von rechts
  Next
'Ende Schleife ueber alle Zeilen von unten
Next
ende:
'Ereignisse aktivieren
Application.EnableEvents = True
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo schauan, vielen Dank im Voraus für die schnelle Antwort. Habe den Code in das Modul für das Tabellenblatt eingefügt, funktioniert aber leider nicht. Könntest du den Code vielleicht noch einmal überprüfen? Vielen Dank!

Habe auch gerade festgestellt, dass mir bei der Erstellung des Themas ein Fehler unterlaufen ist.

Richtig ist: Wenn ich in einer beliebigen Zelle innerhalb der Tabelle den Buchstaben „v“ und „b“ einfüge, dann soll in den dazwischenliegenden Zellen der Buchstabe „a“ erscheinen. Das Ganze soll auch funktionieren, wenn ich beispielsweise den Buchstaben „v“ und „bv“ einfüge (siehe Tabelle!). Sorry!  :33:
Top
#4
Hallöchen,

was heißt "funktioniert nicht"?
Bei welcher Eingabe funktioniert der Code nicht? Bei b oder bv soll er bis zum davor liegenden v die a eintragen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Wenn ich zum Beispiel in der Zelle F5  ein v einfüge und in der Zelle I5 ein b einfüge, dann erscheint in den dazwischliegenden Zellen (G5:H5) kein a.
Top
#6
Hallöchen,

bei mir schon

Arbeitsblatt mit dem Namen 'Tabelle1'
FGHI
5vaab
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg

hast Du den Code auch im Tabellenblattmodul und nicht in einem "normalen" Modul?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Vielen Dank schauan, jetzt klappt es! Möchte gleich mal die Gelegenheit nutzen und euch allen danke sagen. Tolles Forum, macht weiter so! Wünsche euch noch einen schönen Pfingstmontag. Viele Grüße Dirk
Top
#8
Hallo schauan, hallo Mitstreiter,

wende mich heute noch einmal mit oben genannten Thema an Euch. Könntet Ihr den Code im Tabellenblatt überarbeiten und folgende Probleme beseitigen:

1. Wenn ich beispielsweise in einer beliebigen Zelle (z.B. P18) den Buchstaben "b" einfüge, dann werden die davorliegenden Zellen bis zum Anfang der Zeile (C18) mit dem Buchstaben "a" gefüllt und mir in diesem Zusammenhang der Laufzeitfehler 1004 (Anwendungs- oder objektdefinierter Fehler) angezeigt.

2. Des Weiteren werden die im Vorfeld mit "b" gefüllten Zellen durch nachfolgende mit "b" gefüllte Zellen überschrieben.

In der anliegenden Tabelle findet Ihr einige Beispiele, die mal erklären sollen, wie ich mir das so vorstelle.

Beispiele:

1. Beispiel: Wenn in Zelle AE27 "v" und in Zelle AQ27 "b" dann in Zelle AF27:AP27 "a" und wenn in Zelle AU27 "v" und in Zelle BB27 "b" dann in Zelle AV27:BA27 "a" usw.

2. Beispiel: Wenn in Zelle U31 "v" und in Zelle AD31 "b" dann in Zelle V31:AC31 "a" und wenn in Zelle AM31 "b" dann Zelle AE31:AL31 leer.

3. Beispiel: Wenn in Zelle N36 "v" und in Zelle S37 "b" dann in Zelle O36:R37 "a". Der Buchstabe "a" soll sich in diesem Beispiel auch auf die darüberliegende bzw. darunterliegende Zeile beziehen.

Könntet Ihr vielleicht auch mal den Zellenbereich mit dem Code abgleichen.

Danke schon mal für Eure Mühe


Angehängte Dateien
.xlsm   Vorlage Tabelle.xlsm (Größe: 126,56 KB / Downloads: 1)
Top
#9
Hallo,

1) ich habe z.B. in C18 ein v eingetragen und in P18 ein b und erhalte keinen Laufzeitfehler. Auch wenn ich in C17 ein v eintrage und dann in P18 klappt alles wie gewollt. Das Du zu einem b vorher kein v eingibst hast Du nicht beschrieben. Das klappt nur in der ersten Zeile weil da der auszufüllende Bereich zu Ende ist.

2) ich habe z.B. in C20 ein v eingetragen und in F20, D20 und E20 erhalten ein a. Dann habe ich in I20 ein v eingegeben und in K20, nur j20 erhält ein a. Dann in O20 ein V und in U20 ein b, auch hier erhalte ich die a nur dazwischen. Andere Bereiche werden nicht überschrieben. Das Du zu einem b vorher kein v eingibst hast Du nicht beschrieben.

3) bei mir hab ich überall a drin.


Zitat: 'Schleife ueber alle Spalten von rechts
For iCnt2 = 380 To 3 Step -1

Dein auszufüllender Bereich geht nur bis Spalte 99 und nicht bis Spalte 380 ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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