Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA: Werte in neu erstellter Tabelle
13.09.2016 08:38:34
Manuel
Hallo Experten!
Ich habe einen VBA Code der mir einen Teil von Tabelle 1 in eine, mittels Code neu eingefügte, Tabelle kopiert. Nun möchte ich bei jeder Zeile in der neuen Tabelle in der letzten Spalte jeder Zeile einen Text schreiben ("XY").
Gibt es einen Code dafür?
Vielen Dank!!!

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

Betreff
Datum
Anwender
Anzeige
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 08:54:23
UweD
..Text
Msgbox "nur wenige Leute sehen dein Makro"
Gruß UweD
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 09:17:14
Manuel
Dim WS1 as Worksheet
Dim WSF as Worksheet
Set WS1 = ThisWorkbook.Worksheets ("Masterliste")
Set WSF = Worksheets.add (after:=Worksheets ("Masterliste"))
WSF.Name = Textbox1.Text
WS1.Range ("A1:D310, G1:I310").Copy
Dim lngRow_2 as Long, lngRowMax As Long
With WSF
lngRow_2 = .cells (.Rows.Count, 1).End (xlUp).Row + 2
lngRowMax = worksheetFunction.Max (lngRow_2)
.Cells (lngRowMax, 1).PasteSpecial Paste:xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Anzeige
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 09:37:24
UweD
Hallo
hab es ergänzt..
Wobei: Es macht keinen Sinn das Maximum von nur einem Wert zu ermitteln. Das ist immer der Wert selbst.
lngRowMax = WorksheetFunction.Max(lngRow_2)

    Dim WS1 As Worksheet
    Dim WSF As Worksheet
    
    Set WS1 = ThisWorkbook.Worksheets("Masterliste")
    Set WSF = Worksheets.Add(after:=Worksheets("Masterliste"))
    WSF.Name = TextBox1.Text
    
    WS1.Range("A1:D310, G1:I310").Copy
    
    Dim lngRow_2 As Long, lngRowMax As Long
    
    With WSF
        lngRow_2 = .Cells(.Rows.Count, 1).End(xlUp).Row + 2
        lngRowMax = WorksheetFunction.Max(lngRow_2)
        .Cells(lngRowMax, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
        .Range("H" & lngRowMax & ":H" & lngRowMax + 309) = "XY"

    End With



VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD
Anzeige
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 10:00:48
Manuel
Cool vielen vielen Dank!
EineFrage hab ich aber noch:
Der kopierte Text ist nicht immer bis Zeile 310, aber XY möchte ich nur in der Spalte stehen haben in der auch ein Wert in A1 ist.
Soll ich hier eine Wenn Formel im Code einfügen (wenn A1="";"";XY) oder kann man dies davor schon einbauen?
Übrigends die lngRowMax habe ich nur aus dem Netz kopiert, ich weiss nicht genau wie die funktioniert.... aber danke für die Info!!
GLG Manuel
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 11:36:52
UweD
Hallo nochmal.
- Ok, dann kann das MAX ja weg
- Im Prinzip ging das mit der Formel so...
    Dim WS1 As Worksheet
    Dim WSF As Worksheet
    Dim lngRow As Long
    
    Set WS1 = ThisWorkbook.Worksheets("Masterliste")
    Set WSF = Worksheets.Add(after:=Worksheets("Masterliste"))
    WSF.Name = TextBox1.Text
    
    WS1.Range("A1:D310, G1:I310").Copy
    With WSF
        lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 2
        .Cells(lngRow, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
        .Range("H" & lngRow & ":H" & lngRow + 309).Formula = "=IF($A$1<>"""",""XY"","""")"
        .Columns("H").Value = .Columns("H").Value 'Formel in Werte 
    End With

End Sub

Aber:
- da das Blatt gerade erst erzeugt wurde, ist das leer
- mit lngRow_2 = .Cells(.Rows.Count, 1).End(xlUp).Row + 2 wird die erste Freie Zeile gesucht und 2 addiert / also ist der Wert=3
- wenn du nun ab A3 reincopierst, ist A1 immer noch leer. Also würde die Formel nie was anzeigen.
es sei denn, du wills (ab A3) jeweils den Wert in A ? prüfen?! Dann so..
.Formula = "=IF(A3"""",""XY"","""")"
LG UweD
Anzeige
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 12:40:53
Manuel
Super vielen Dank Uwe! Habs verstanden!
Kannst du mir vielleicht noch einen Code verraten der generell bei einer Tabelle die zelle in der Spalte B löscht wenn nichts in der Spalte A steht. Nur mit Code, ohne wenn Formel?
Vielen vielen Dank
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 13:36:39
UweD
Hallo
- entweder musst du per Schleife die Zellen einzeln prüfen, das dauert eben.
oder
- über die Inhalteauswahl (Leerzellen) und dann offset...
    .Columns("A:A").SpecialCells(xlCellTypeBlanks).Offset(0, 1).ClearContents
LG UweD
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 14:58:34
Manuel
...das verstehe ich nicht, mitbdiesem Code löscht er mir ja die Spalte A.
Ich möchte ja die Spalte B Löschen wenn Spalte A leer ist!
Anzeige
AW: ergänze in Zeile 8 deines Makros den
13.09.2016 15:30:35
Manuel
Sorry...alles retour! Hat alles hervorragend geklppt!
Warst mir heute eine grosse Hilfe - Vielen Dank für alles....jetzt lasse ich dich in Ruhe!
LG Manuel
Ok, danke für die Rückmeldung.
13.09.2016 15:36:38
UweD

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige