Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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
zelle finden und wert einfügen
michael
hallo excel-profis!
ich versuche mittels makro, das mit einem button angestoßen wird, die letzte befüllte zelle in einer spalte zu finden und diese mit einem wert zu überschreiben.
hintergrund:
es gibt eine zelle zur dateneingabe (H3). der inhalt dieser zelle wird mittels formel =WENN($B$4=D17;H3;"") auf die unveränderbare zelle O17 "gespiegelt".
wenn nun der button "übernehmen" geklickt wird, soll der wert (01.11.2011), der gerade noch via formel in O17 angezeigt wurde, dann als "richtiger" wert nach O17 kopiert werden, so dass das feld unveränderbar wird.
im nächsten monat ist dann O18 dran...
blattschutz aufheben und setzen hab ich bereits, kopzerbrechen bereitet mir dies hier:
Dim lZ As Long
lZ = Sheets("F_A_K").Range("O" & Rows.Count).End(xlUp).Row
If lZ < 8 Then Exit Sub
Sheets("F_A_K").Cells(3, 8).Copy Cells(lZ, 15)
so wird der wert von H3 nämlich in die letzte zelle gesetzt, in der die formel steht und nicht dort hin, wo ursprünglich der wert stand.
wie kann ich dem makro sagen, dass es genau auf diesen einen wert gehen soll, der auch in H3 steht?
danke für eure unterstützung!
beste grüße,
michael
AW: zelle finden und wert einfügen
05.10.2011 12:00:52
Rudi
Hallo,
probier's mal so:
Range("O:O").Find(what:=Range("H3"), after:=Range("O1"), LookIn:=xlValues, lookat:=xlWhole) = Range("H3")
Gruß
Rudi
AW: zelle finden und wert einfügen
05.10.2011 12:03:41
Tino
Hallo,
kannst mal testen, weiß nicht ob ich alles verstanden habe.

Sub Start()
Dim rng As Range
With Tabelle1 'Tabelle anpassen
Set rng = .Columns(15).Find("*", LookIn:=xlValues, _
SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
End With
If Not rng Is Nothing Then
If rng.HasFormula Then rng.Value = rng.Value
End If
End Sub
Gruß Tino
AW: zelle finden und wert einfügen
05.10.2011 12:28:24
michael
ich schaffe es leider auch mit euren inputs nicht. :(
würdet ihr euch mal die datei anschauen?
https://www.herber.de/bbs/user/76863.xls
mit klick auf den button soll O17 mit 01.11.2011 überschreiben werden...
danke schön!
Anzeige
AW: zelle finden und wert einfügen
05.10.2011 12:45:43
Tino
Hallo,
Du hättest nur die Tabelle anpassen brauchen.
Hier die Datei Code ist in Deinen Code eingebaut, kannst mal testen.
https://www.herber.de/bbs/user/76864.xls
Gruß Tino
AW: zelle finden und wert einfügen
05.10.2011 15:38:09
michael
funktioniert leider wirklich nicht. der wert wird immer noch auf O106 geschrieben und nicht auf O17...
AW: zelle finden und wert einfügen
05.10.2011 16:36:25
Tino
Hallo,
ach da unten steht ja auch noch was drin, habe ich nicht gesehen.
Ersetze mal die Zeile

Set rng = .Columns(15).Find("*", LookIn:=xlValues, _
SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
durch diese

Set rng = .Columns(15).Find("*", After:=.Cells(.Rows.Count, 15).End(xlUp), LookIn:=xlValues, _
SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
Gruß Tino
Anzeige
AW: zelle finden und wert einfügen
05.10.2011 16:43:51
michael
au ja! jetzt nähern wir uns dem ziel! :)
kannst du mir vielleicht noch sagen, was man machen muss, damit der wert tatsächlich nur in die richtige zelle geschrieben wird, und nicht auch immer noch zusätzlich in die zelle O106?
(O106 wird in weiterer folge von neuen einträgen immer wieder überschrieben...)
danke!!!
AW: zelle finden und wert einfügen
05.10.2011 16:58:26
Henrik
Hallo Michael,
wenn ich dich richtig verstanden haben, ersetze mal alles hierdurch.

Private Sub CommandButton1_Click()
Dim x As Integer, y As Integer
With ActiveSheet
.Unprotect Password:=""
For x = 8 To 106
For y = 0 To 8 Step 2
If .Cells(x, 6 + y).Value = "B" Then
.Cells(x, 5 + y).Locked = True
.Cells(x, 5 + y).Interior.ColorIndex = 15
.Cells(x, 6 + y).Locked = True
.Cells(x, 6 + y).Interior.ColorIndex = 15
Else
.Cells(x, 5 + y).Locked = False
.Cells(x, 6 + y).Locked = False
End If
Next y
If Not IsDate(.Cells(x, 15).Value) Then
Stop
.Cells(x - 1, 15).Value = .Cells(3, 8).Value
Exit For
End If
Next x
.Protect Password:="", UserInterfaceOnly:=True
End With
End Sub

Gruß Henrik
Anzeige
AW: zelle finden und wert einfügen
05.10.2011 16:59:35
Henrik
und entferne das STOP :)
AW: zelle finden und wert einfügen
05.10.2011 17:07:29
michael
henrik,
das ist PERFEKT für mich!
danke vielmals!!! :)
beste grüße aus wien,
michael
AW: zelle finden und wert einfügen
05.10.2011 16:58:46
Tino
Hallo,
wenn der Bereich dazwischen immer gleich groß ist, könnten wir den Suchbereich fest einstellen.

    Set rng = .Range("O8:O105").Find("*", LookIn:=xlValues, _
SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
Gruß Tino
AW: zelle finden und wert einfügen
05.10.2011 17:07:56
michael
lieber tino,
danke für deine mühen!
jetzt funktioniert alles so, wie ich es brauche! :)

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige