Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Komme mit aufgezeichnetem Makro nicht weiter

Betrifft: Komme mit aufgezeichnetem Makro nicht weiter von: Christian
Geschrieben am: 05.10.2014 20:22:55

Hallo an alle,

habe am Ende stehendes Makro aufgezeichnet.

Könnt ihr mir bitte helfen, es anzupassen.

1. Statt Zeile 260 die letzte Zeile mit Inhalt in Spalte D.
2. Statt Zeile 261 alle nachfolgenden Zeilen mit Inhalt.
3. Statt A1:J261 die Spalten B und F und auch nur in den Zeilen, aus Punkt 2. (Wenn das zu kompliziert ist, geht auch alle Zellen mit Inhalt).

Kurzum es geht mir darum, wenn ich zu den zur Zeit 261 Zeilen welche hinzufüge, das Makro die Formeln aus Zeile 261 in die neuen Zeilen übernimmt, sodass dieses Makro immer wieder ausführbar ist, egal wieviele Zeilen bereits die Formeln beinhalten oder wieviele seit dem letzten Ausführen hinzugekommen sind (also die Formeln noch fehlen)

Die Texte, die ich in die Spalten B und F einfüge, werden in Calibri 24, Fett eingefügt, das heißt, das Makro müsste sich gar nicht die Mühe machen den kompletten Bereich, z.Z. A1:J251 in Calibri 11, nicht fett zu ändern, sondern es reicht die Spalten B und F in den seit dem letzten Ausführen neu hinzugekommenen Zeilen.

Kann mir da jemand helfen?

Vielen Dank schonmal
Christian

Sub Makro1()
'
' Makro1 Makro
'
' Tastenkombination: Strg+y
'
    Range("A1:J261").Select
    Range("H261").Activate
    With Selection.Font
        .Name = "Calibri"
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    With Selection.Font
        .Name = "Calibri"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    Selection.Font.Bold = True
    Selection.Font.Bold = False
    Range("D260").Select
    Selection.Copy
    Range("D261").Select
    ActiveSheet.Paste
    Range("H260:J260").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("H261").Select
    ActiveSheet.Paste
End Sub

  

Betrifft: Rückmeldung? von: Erich G.
Geschrieben am: 06.10.2014 00:20:00

Hi Christian,
bist du der Christian, der noch auf den folgenden Beitrag (Beispieldatum 25.09.1968) antworten könnte?

leicht geändertes Beispiel - von Erich G. am 01.10.2014 12:01:01

bzw. im Archiv:
www.herber.de/forum/archiv/1384to1388/t1384118.htm#1384317

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Rückmeldung? von: Adis
Geschrieben am: 06.10.2014 00:33:06

Hallo

anbei eine überarbeitete Makro Version. Ich hoffe ich habe die Aufgabe richtig verstanden,
sonst bitte Rückmeldung zum korrigieren. Zum ermitteln der letzten Zeile brauche ich eine
volle Spalte. Ich habe hier Spalte "H" genommen, s. Const zBezug. Es kann jede andere sein,
Hauptsache es gibt einen Wert in der letzten Zeile.

Über eine InputBox können bis max 10 neue Zeilen kopiert werden. Ist evtl. eine Erleichterung.

Const zBezug = "H2000"

Sub Spalten_aufCalibri_setzen()
Dim Zahl As Variant, z As Long
    z = Range(zBezug).End(xlUp).Row
    With Range("D1:D" & z).Font
        .Name = "Calibri"
        .Size = 11
        .Bold = False
    End With
    With Range("H1:J" & z).Font
        .Name = "Calibri"
        .Size = 11
        .Bold = False
    End With

   'Eingabe für max 10 Zeilen
    Zahl = InputBox("Wieviele Zeilen sollen kopiert werden?   (max 10)", , 1)
    If Not IsNumeric(Zahl) Then Zahl = 1 Else If Zahl > 10 Then Zahl = 10
   'letzte Zeile in Spalte H ermitteln
    z = Range(zBezug).End(xlUp).Row
   'Zelle "D" 1 Zeile tiefer kopieren
    Range("D" & z).Copy _
    Range(Cells(z + 1, "D"), Cells(z + Zahl, "D"))
   'Zelle "H;J" 1 Zeile tiefer kopieren
    Range(Cells(z, "H"), Cells(z, "J")).Copy _
    Range(Cells(z + 1, "H"), Cells(z + Zahl, "H"))
    Application.CutCopyMode = False
End Sub
Gruss Adis


  

Betrifft: AW: Info von: Ewald
Geschrieben am: 06.10.2014 00:56:07

Hallo Adis,

auch wenn du hilfsbereit bist, solltest du bei solchen oder ähnlichen Formulierungen wie von Erich, keine Antwort geben.

dieser User hält es nicht für nötig auf geleistete Hilfe eine Rückmeldung zu geben, obwohl es eigentlich schon Anstand und Höflichkeit erfordert.

Das Forum soll nicht auf das Niveau "He Alter schick mal rüber" absinken

Gruß Ewald


  

Betrifft: AW: Rückmeldung? von: Christian
Geschrieben am: 06.10.2014 07:50:39

Hallo Erich,

ja dieser Christian bin ich. Tatsache ist, die Mail dass diese Nachricht eingegangen ist war in meinen Spams gelandet, daher ist mir jetzt erst aufgefallen, dass da noch eine Antwort kam. Ich hatte ja durch die programmierte Formel ja auch bereits eine funktionierende Lösung.
Du hast natürlich vollkommen Recht, wenn du sagst, ich solle Rückmeldung geben.
Dazu, ich würde nicht auf deine Nachricht eingehen. Was bringt es mir, großartig auf den Versuch einer Erklärung einzugehen, die für mich nicht zielführend ist, weil ich mit der Ausgabe des 1. des Monats in meinem Fall nichts anfangen kann. Ich habe dies einfach als Erklärung dessen verstanden, zu der kein weiterer Kommentar notwendig ist. Daher habe ich mich auf die Bitte beschränkt, zu überdenken, ob das Monatsende nötig ist.

Aber nichts desto trotz, könntest du mir bitte mit dem Makro helfen?
Muss jetzt allerdings erstmal zu einem wichtigen Temrin um 9, kann das Makro das vorgeschlagen wurde, erst im Anschluss testen.

Gruß
Christian


  

Betrifft: Bitte noch mal lesen... von: Erich G.
Geschrieben am: 06.10.2014 09:47:32

Hi Christian,
im Beitrag
leicht geändertes Beispiel - von Erich G. am 01.10.2014 12:01:01

ging es nicht mehr um den 1. des Monats. Es ging darum, ob der in der Zelle stehende Tag 25 (vom 25.09.1968) erhalten bleiben
oder durch den Monatsletzten überschrieben soll.

Eigentlich sollten doch nur fehlenden Daten ergänzt werden - der Tag fehlt hier aber nicht!

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich


  

Betrifft: AW: Bitte noch mal lesen... von: Christian
Geschrieben am: 06.10.2014 11:37:58

Hallo Erich,

ich gehe davon aus, dass hier einige Missverständnisse vorlagen von dem was wir uns gegenseitig mitteilen wollten. Du wolltest mir erklären wie die Daten in Excel zustande kommen, ich hatte dich so verstanden als wäre genau das was du da schreibst eine Erklärung, weshalb das was ich mir vorstelle nicht möglich ist.

Ich habe es nochmal gerade ausprobiert, du hast natürlich recht, wenn ich den Text September 1968 in eine Zelle eingebe, macht er daraus das Datum 01.09.1968 und zeigt dies im Format MMM JJ an.

Aber gibt es dann nicht die Möglichkeit, z.B. vom Sinn her so, =DATUM(G1;G1+1;G1)-1 also beim Monat einen dazutun, damit wir in dem Fall beim 1.10. sind und davon am Schluss 1 Tag abziehen, was der 30. September wäre. Nur leider funktioniert diese Formel so nicht und gibt nur #Wert! aus. Aber zumindest etwas in der art.

Gruß
Christian

PS:


  

Betrifft: AW: Rückmeldung? von: Christian
Geschrieben am: 07.10.2014 08:54:28

Hallo Adis,

sorry komme erst jetzt dazu, das Makro zu testen, habe die Zeit die mir bei meinem Stress die Tage geblieben ist, genutzt um mich mit Erich auseinander zu setzen.

Beim Ausführen wird deine Zeile z = Range(zBezug).End(xlUp).Row gelb markiert mit der Meldung
Die Methode Range für das Objekt _Global ist fehlgeschlagen.

Gruß und danke schonmal für die Mühe
Christian


  

Betrifft: AW: Komme mit aufgezeichnetem Makro nicht weiter von: Adis
Geschrieben am: 07.10.2014 15:52:29

Hallo

ich möchte hier gerne am Ball bleiben. Ich mag es nicht Makros zu schreiben
die nicht einwandfrei funktionieren. Vielleicht habe ich etwas übersehen?

Das möchte ich gerne herausfinden. Frage: sind mehrere Mappen geöffnet?
Ist bei der Ausführung die gewünschte Tabelle selektiert, oder eine andere?
Bitte mal probieren ob es lauft wenn man die Tabelle vorher selektiert, s.u.

Dim Zahl As Variant, z As Long
Sheets("Tabelle1").Select
z = Range(zBezug).End(xlUp).Row

Gruss Adis


 

Beiträge aus den Excel-Beispielen zum Thema "Komme mit aufgezeichnetem Makro nicht weiter"