Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abänderung VBA-Code

Forumthread: Abänderung VBA-Code

Abänderung VBA-Code
10.10.2006 18:07:22
Bernd
Hallo,
folgenden VBA-Code würde ich gerne abändern, sodass die Formel in Spalte I auch eingetragen wird, wenn ein Inhalt in Spalte B kopiert wurde (also nicht nur bei einem neu eingegebenen Text)

Private Sub Worksheet_Change(ByVal Target As Range)
'Fügt Formel zur Ermittlung des Gruppe in Spalte I:I ein, wenn in Spalte B ein neuer Name geschrieben wurde:
If Target.Column = 2 Then
On Error GoTo Punkt_A
Application.EnableEvents = False
If Target <> "" Then
Target.Offset(0, 7).FormulaLocal = _
"=wenn(istzahl(E" & Target.Row & ");SVERWEIS(A" & Target.Row & ";gruppenliste;2);"""")"
' Formel: =WENN(ISTZAHL(E1);SVERWEIS(A1;gruppenliste;2);"")
Else
Target.Offset(0, 7).ClearContents
End If
End If
Punkt_A:
Application.EnableEvents = True
End Sub

Gruss
bernd
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abänderung VBA-Code
10.10.2006 18:19:04
Reinhard
Hi Bernd,
Change-Ereignis wird doch ausgelöst wenn du was reinkopierst!?
Das Problem wa sdein Code hat,ist, dass es einen Fehler gibt wenn mehrere Zellen reinkopiert werden *mutmaß*
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Abänderung VBA-Code
10.10.2006 18:53:46
Bernd
Und, wie ließe sich das korrigieren?`
gruss
bernd
AW: Abänderung VBA-Code
14.10.2006 16:04:57
Reinhard
Hi Bernd,
ungetestet, und du kannst nur eine von beiden Subs haben, also andere auskommentieren/umbenenne beim Testen.
Und beachte den vierten Parameter bei Sverweis!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Zelle As Range
Set Bereich = Intersect(Target, Columns(2))
If Bereich Is Nothing Then Exit Sub ' in B wurde nichts geändert
On Error GoTo Fehler
Application.EnableEvents = False
For Each Zelle In Bereich
Zelle.Offset(0, 7).ClearContents
' Formel: =WENN(ISTZAHL(E1);SVERWEIS(A1;gruppe;2);"")
If Zelle.Value <> "" Then Zelle.Offset(0, 7).FormulaLocal = _
"=wenn(istzahl(E" & Target.Row & ");SVERWEIS(A" & Target.Row & ";gruppe;2);"""")"
Next Zelle
Fehler:
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Zelle As Range
Set Bereich = Intersect(Target, Columns(2))
If Bereich Is Nothing Then Exit Sub ' in B wurde nichts geändert
On Error GoTo Fehler
Application.EnableEvents = False
For Each Zelle In Bereich
Zelle.Offset(0, 7).ClearContents
' Formel: =WENN(ISTZAHL(E1);SVERWEIS(A1;gruppe;2);"")
If Zelle.Value <> "" Then Zelle.Offset(0, 7).Value = Application.WorksheetFunction.if(IsNumber(Range("E" & Zelle.Row)) _
, Application.WorksheetFunction.VLookup(Range("A" & Target.Row), Range(gruppe), 2, 0), "")
Next Zelle
Fehler:
Application.EnableEvents = True
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Abänderung VBA-Code
11.10.2006 20:21:14
Gerd
So ?
If Target.Column = 2 And Target.Count= 1 Then
.....
Gruß
Gerd
AW: Abänderung VBA-Code
12.10.2006 11:37:51
Bernd
Hallo Gerd,
nein ändert leider auch nichts. Jemand anderes vielleicht noch eine Idee, wie es gehen könnte?
Gruss
bernd
AW: Abänderung VBA-Code
12.10.2006 13:18:20
Waltraud
Probier mal anstelle von
If Target.Columns.Count + Target.Column &gt= 2 Then
If (Target.Column = 2 And Target.Columns.Count = 1) Or (Target.Column &lt= 2 And Target.Columns.Count &gt= 2) Then
Anzeige
AW: Abänderung VBA-Code
12.10.2006 14:09:21
Bernd
Wie jetzt genau?
Anstelle von was was?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Columns.Count + Target.Column >= 2 Then
If (Target.Column = 2 And Target.Columns.Count = 1) Or (Target.Column <= 2 And Target.Columns.Count >= 2) Then
On Error GoTo Punkt_A
Application.EnableEvents = False
If Target <> "" Then
Target.Offset(0, 7).FormulaLocal = _
"=wenn(istzahl(E" & Target.Row & ");SVERWEIS(A" & Target.Row & ";gruppe;2);"""")"
' Formel: =WENN(ISTZAHL(E1);SVERWEIS(A1;gruppe;2);"")
Else
Target.Offset(0, 7).ClearContents
End If
End If
End If
Punkt_A:
Application.EnableEvents = True
End Sub

Anzeige
AW: Abänderung VBA-Code
12.10.2006 14:49:40
Waltraud
Verzeihung Anstelle von
If Target.Column = 2 Then
AW: Abänderung VBA-Code
12.10.2006 15:02:27
Bernd
Gut,
dann müsste obiger Code ja funktionieren. Das tut er aber auch nicht.
Gruss
b.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige