Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
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

VBA-Lösung

VBA-Lösung
Fritz_W
Hallo Forumsbesucher,
ich bitte erneut um Hilfe in folgender Angelegenheit:
Im Bereich A1:A1000 meiner Tabelle befinden sich die Zahlen 1 bis 1000. Eine der in diesem Bereich vorkommenden Zahl steht auch in der Zelle F3. Ich bräuchte nun ein Makro, das folgendes leistet:
Das Makro sollte die in Zelle F3 stehende Zahl im Bereich A1:A1000 suchen und den Zellwert der Zelle G3 in die Zelle rechts neben der (im Zellbereich A1:A1000) gefundenen Zelle kopieren.
Beispiel: Steht in F3 die Zahl 11 und diese Zahl im Zellbereich A1:A1000 in Zelle A11, dann sollte der Inhalt der Zelle G3 in die Zelle B11 kopiert werden.
Ich hoffe, mein Anliegen nachvollziehbar erklärt zu haben und freue mich über eure Hilfen.
mfg
Fritz

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA-Lösung
05.05.2012 13:43:43
Hajo_Zi
Hallo Fritz,

warum Makro.
Benutze Wenn(ZählenWenn()>1;F3;"")


AW: VBA-Lösung
05.05.2012 13:53:38
Fritz_W
Hallo Hajo,
ich brauch deshalb eine Makrolösung, weil die Einträge im Zellbereich B1:B1000 dauerhaft festgeschrieben werden.
mfg
Fritz
AW: VBA-Lösung
05.05.2012 14:00:56
Tino
Hallo,
versuch es so.
Sub CopyValue_()
Dim nRow
With Tabelle1 'Tabelle anpassen
nRow = Application.Match(.Range("F3"), .Range("A1:A1000"), 0)
If IsNumeric(nRow) Then
.Cells(nRow, 2).Value = .Range("G3").Value
Else
MsgBox .Range("F3") & " wurde nicht gefunden", vbExclamation
End If
End With
End Sub
Gruß Tino
Anzeige
AW: VBA-Lösung
05.05.2012 14:18:01
Fritz_W
Hallo Tino,
das funktioniert perfekt.
Vielen herzlichen Dank.
mfg
Fritz
@Tino und andere VBA-Experten
05.05.2012 14:37:12
Fritz_W
Hallo,
ich hätte gerne, dass man den obigen Code so verändert, dass in jede Zelle des Zellbereichs B1:B1000 nur einmal kopiert wird. Das bedeutet, dass - sollte die betreffende Zelle dieses Zellbereichs nicht leer sein, der Kopiervorgang nicht ausgeführt werden soll und entsprechend der Hinweis: "Die Aufgabe wurde bereits bearbeitet" ausgegeben werden soll.
Im Voraus besten Dank
mfg
Fritz
AW: @Tino und andere VBA-Experten
05.05.2012 15:13:33
Tino
Hallo,
könnte man so machen.
Sub CopyValue_()
Dim nRow
With Tabelle1 'Tabelle anpassen
nRow = Application.Match(.Range("F3"), .Range("A1:A1000"), 0)
If IsNumeric(nRow) Then
If .Cells(nRow, 2) = "" Then
.Cells(nRow, 2).Value = .Range("G3").Value
Else
MsgBox "Die Aufgabe wurde bereits bearbeitet", vbInformation
End If
Else
MsgBox .Range("F3") & " wurde nicht gefunden", vbExclamation
End If
End With
End Sub
Gruß Tino
Anzeige
AW: @Tino und andere VBA-Experten
05.05.2012 15:22:34
Fritz_W
Hallo Tino,
ganz herzlichen Dank.
Viele Grüße
Fritz
AW: @Tino und andere VBA-Experten
05.05.2012 15:22:37
Fritz_W
Hallo Tino,
ganz herzlichen Dank.
Viele Grüße
Fritz
AW: VBA-Lösung
05.05.2012 14:14:42
Hajo_Zi
Hallo Fritz,
unter die Tabelle.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaFound As Range
If Target.Address = "$F$3" And Target  "" Then
Set RaFound = Range("A1:A1000").Find(Range("F3"), , , xlPart, , xlNext)
If Not RaFound Is Nothing Then
Cells(RaFound.Row, 2) = Range("G3")
End If
End If
End Sub
Gruß Hajo
Anzeige
AW: VBA-Lösung
05.05.2012 14:23:48
Fritz_W
Hallo Hajo,
danke, werds gleich testen ob mögliche Alternative zu Tinos Lösung.
mfg
Fritz
AW: VBA-Lösung
05.05.2012 14:24:50
Hajo_Zi
Hallo Fritz,
Du hast schon beachtet das bei Tino sein Makro nach jeder Eingabe in F3 das Makro gesrtartet werden muss?
Gruß Hajo
AW: VBA-Lösung
05.05.2012 14:31:46
Fritz_W
Hallo Hajo,
ja, das habe ich beachtet, dennoch danke für den Hinweis.
Viele Grüße
Fritz
AW: VBA-Lösung
05.05.2012 14:39:55
Hajo_Zi
Hallo Fritz,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaFound As Range
If Target.Address = "$F$3" And Target  "" Then
Set RaFound = Range("A1:A1000").Find(Range("F3"), , , xlPart, , xlNext)
If Not RaFound Is Nothing Then
If Cells(RaFound.Row, 2) = "" Then
Cells(RaFound.Row, 2) = Range("G3")
Else
MsgBox "Die Aufgabe wurde bereits bearbeitet"
End If
End If
End If
End Sub
Gruß Hajo
Anzeige
AW: VBA-Lösung
05.05.2012 15:23:23
Fritz_W
Hallo Hajo,
auch Dir ganz herzlichen Dank.
Viele Grüße
Fritz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige