Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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
Inhaltsverzeichnis

Zelle überschreiben

Zelle überschreiben
04.12.2015 15:14:00
Shahed
Hallo zusammen,
SOS..  könnte jemanden mir helfen?
Ich brauche einen Code, der mir folgende Aktion automatisiert.
Spalte K beinhaltet verschiedene Sachnummern, die durch verschiedenen Code befühlt wird. (verschiedene Regelungen)
Jetzt kommt eine neue Regel. Und zwar soll Inland und Ausland auch mitberücksichtigt werden.
Spalte L beinhaltet Inland oder Ausland (Klappe).
Die beiden Spalten haben tausende Zeilen.
Die beide fangen von der Zeile 2 an. (Erste Zeile ist Überschrift)
Bitte: Ich brauche eine Code, die automatisch folgende Regeln berücksichtigen.
Wenn in der Spalte K „Inland“ Steht bleibt Spalte L unberührt.
Aber wenn in der Spalte L „Ausland“ steht, muss die Spalte K wie folgt überschrieben werden.
Wenn in der Spalte L „9003809005“ steht, muss spalte L auf „9003809018“ abgeändert werden.
Wenn in der Spalte L „9003809006“ steht, muss spalte L auf „9003809019“ abgeändert werden.
anbei auch ein Beispiel angehängt.
https://www.herber.de/bbs/user/102014.xlsx
Ich bedanke mich bei euch recht herzlich und freue ich mich über eure Hilfe.
Viele Grüße
Shahed

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle überschreiben
04.12.2015 15:43:36
Matthias
Hallo
Hier (m)eine Variante
https://www.herber.de/bbs/user/102016.xlsm
Bereich bitte anpassen!
Bei vielen Zeilen empfielt es sich die Bildschirmaktualisierung vorher im Code auszuschalten:
Application.ScreenUpdating = False
und evtl die automatische Berechnung für diese Zeit auf manuell zu stellen:
Application.Calculation =xlCalculationManual
Nicht vergessen am Ende wieder auf Automatic zu stellen wenn es gewollt ist.
Besser noch den Zustand vorher abfragen und am Ende dann wieder herstellen
Gruß Matthias

Anzeige
AW: Zelle überschreiben
04.12.2015 18:29:33
Sepp
Hallo Shahed,
in ein allgemeines Modul. Tabellenname anpassen!
' **********************************************************************
' Modul: Modul11 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub ausland()
Dim rng As Range

With Sheets("Tabelle1") 'tabellenname - Anpassen!
  With .Range("A1").CurrentRegion
    .AutoFilter Field:=12, Criteria1:="=Ausland"
    Set rng = .Columns(11).Offset(1, 0).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
    .Offset(0, .Columns.Count).Resize(1, 1) = 13
    .Offset(0, .Columns.Count).Resize(1, 1).Copy
    rng.PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd, True
    .Offset(0, .Columns.Count).Resize(1, 1) = ""
    Application.CutCopyMode = False
  End With
  .ShowAllData
  .Range("A1").Select
End With

End Sub

Gruß Sepp

Anzeige
AW: Zelle überschreiben
07.12.2015 16:40:01
Shahed
Hallo Sepp,
Erstmal vielen Dank.
2 Punkten stimmen hier nicht.
1) Die liste hat ein paar tausend Zeile. Ich möchte gerne nach jedem Eintrag die Aktion automatisch ausgeführt werden. Bei deinem Code muss ich extra das Modul ausführen lassen.
2) Falls ich 2 mal auf Ausführen drücke, ist die erste Ausführung richtig, zweite ist aber falsch. d.h jedes Mal wird die Zelle von der Spalte k mit 13 addiert, statt die Inhalte von der Zelle objektiv zu ersetzen.
Ich kann das erste Problem so lösen, dass ich deinen Cod mit einem Schaltfläche aktivieren, allerdings würde so das zweite Problem kräftiger auftauchen.
Oder bin ich total falsch :-(
Ich bitte Dich um die Hilfe.
Danke sehr
Viele grüße
Mohsen

Anzeige
AW: Zelle überschreiben
04.12.2015 20:07:12
Matthias
Hallo nochmal
Also irgendwie ist die Fragestellung etwas durcheinander, oder
Besonders die letzte 4 Zeilen
Wenn in der Spalte K „Inland“ Steht bleibt Spalte L unberührt.
Aber wenn in der Spalte L „Ausland“ steht, muss die Spalte K wie folgt überschrieben werden.
Wenn in der Spalte L „9003809005“ steht, muss spalte L auf „9003809018“ abgeändert werden.
Wenn in der Spalte L „9003809006“ steht, muss spalte L auf „9003809019“ abgeändert werden.
Das passt alles nicht zueinander!
Lies Dir das doch nochmal selbst durch.
Gruß Matthias

Anzeige
AW: Zelle überschreiben
07.12.2015 13:07:33
Shahed
Hallo und herzlichen Dank erstmal an alle, die sich Mühe gegeben haben.
also die zwei Code, die ich bekommen habe, haben nicht funktioniert. Der Matthias hatte Recht. Meine Erklärungen waren nicht ganz korrekt von daher entschuldige ich mich bei euch.
Also nochmal:
Wenn in der Spalte L (L2 bis Ln) Inland steht DANN keine Änderung
Wenn in der Spalte L (L2 bis Ln) Ausland steht DANN Der Wert in der vorherige Spalte wie folgt abändern.
Spalte L = Ausland dann:
Falls in der Spalte K „9003809005“ steht dann muss auf 9003809018 abgeändert werden
Falls in der Spalte K „9003809006“ steht dann muss auf 9003809019 abgeändert werden
D.h. Ich habe eine Voraussetzung ( in der Spalte L Ausland stehen), wenn stimmt, dann 2 Regeln
9003809005 in der Spalte k muss 9003809018 werden.
9003809006 in der Spalte k muss 9003809019 werden.
Herzlichen besten Dank
Viele Grüße
Shahed

Anzeige
AW: Zelle überschreiben
07.12.2015 14:02:47
Sepp
Hallo Sahed,
und was hat bei meinem Code nicht funktioniert? Ich habe ihn in deiner Datei getestet und da hat es ausgezeichnet funktioniert!
Gruß Sepp

AW: Zelle überschreiben
07.12.2015 17:22:04
Shahed
Hallo Sepp,
Erstmal vielen Dank.
2 Punkten stimmen hier nicht.
1) Die liste hat ein paar tausend Zeile. Ich möchte gerne nach jedem Eintrag die Aktion automatisch ausgeführt werden. Bei deinem Code muss ich extra das Modul ausführen lassen.
2) Falls ich 2 mal auf Ausführen drücke, ist die erste Ausführung richtig, zweite ist aber falsch. d.h jedes Mal wird die Zelle von der Spalte k mit 13 addiert, statt die Inhalte von der Zelle objektiv zu ersetzen.
Ich kann das erste Problem so lösen, dass ich deinen Cod mit einem Schaltfläche aktivieren, allerdings würde so das zweite Problem kräftiger auftauchen.
Oder bin ich total falsch :-(
Ich bitte Dich um die Hilfe.
Danke sehr
Viele grüße
Mohsen

Anzeige
AW: Zelle überschreiben
07.12.2015 17:58:56
Sepp
Hallo Sahed,
dann nimm meine ersten Code, um die bestehende Liste richtig zu stellen und folgenden kpierst du in das Modul der Tabelle um bei der Eingabe die Einträge zu korrigieren.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range

On Error GoTo Errorhandler
If Not Intersect(Target, Range("K:L")) Is Nothing Then
  Application.EnableEvents = False
  For Each rng In Intersect(Target, Range("K:L"))
    If (Cells(rng.Row, 11) = 9003809005# Or Cells(rng.Row, 11) = 9003809006#) And Cells(rng.Row, 12) = "Ausland" Then
      Cells(rng.Row, 11) = Cells(rng.Row, 11) + 13
    End If
  Next
End If

Errorhandler:
Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Zelle überschreiben
09.12.2015 16:42:36
Shahed
Vielen Dank an Alle. es funktionert SUPER... Dankeeeee

AW: Zelle überschreiben
07.12.2015 18:15:41
Daniel
Hi
probier mal folgendes:
Sub aendern()
With ActiveSheet.UsedRange
.AutoFilter field:=12, Criteria1:="Ausland"
.Columns(11).Replace 9003809005#, 9003809018#, xlwhole
.Columns(11).Replace 9003809006#, 9003809019#, xlwhole
.AutoFilter
End With
End Sub
das nutzt aus, dass in gefilterten Tabellen nur die sichtbaren Zellen bearbeitet werden.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige