Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA-Codes verbessern





Frage

Moin... Ich hab einige kleine Makros mit dem Recorder aufgezeichnet. Dabei muß ich ja die einzelnen Zellen wählen und im Code erscheint dann je Range("a18").select. Wenn ich das Makro per Button starte springt der Bildschirm ja immer den Selectbefehlen hinterher. Geht es auch anders indem ich den Code manuell verändere ohne das der Bildschirm den Slectbefehlen hinterherspringt. (Beispiel) Range("A18:F18").Select With Selection.Font .Name = "Swis721 Cn BT" .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic Kann ich hier auch die Selectbefehle irgendwie weglassen. Ich will das Layout der Zellen verändern so wie es in dem Code beschrieben ist. Geht das??? [*][quote][sup][i]Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Siehe [url=https://supportnet.de/groupfaqs/3][u]FAQ2.[/u][/url][/i][/sup][/quote]

Antwort 1 von JoeKe

Moin,

ja das geht. ;-)

So:

With Range("A18:F18").Font
.Name = "Swis721 Cn BT"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With




Gruß

JöKe

Antwort 2 von kuestenjung06

Kann ich so alle Select.Befehle aus so einem VBA-Code entfernen?

Antwort 3 von JoeKe

Hallo,

auf "select" kann in den meisten Fällen versichtet werden.
Wie dabei zu verfahren ist, hängt von dem ab was man erreichen möchte.
Normalerweise kann aber davon ausgehen, dass wenn im Code xxxx.select; selection.xyz steht, dass man genau sogut xxxx.xyz schreiben kann.


MfG

JöKe

Antwort 4 von kuestenjung06

Danke für die Hilfe.. :)

Antwort 5 von kuestenjung06

Ich hab da noch ein Problem. Ich komm hier einfach nicht weiter.. Ich habe per aufgezeichnetem Makro leere Zeilen in eine Liste eingefügt. Zusätzlich dazu ein Kombifeld welches über Sverweis Kundendaten in solch eine leere Zeile einfügt wenn ich einen CommandButton clicke. Ich hab aber nur ein "zentrales Kombifeld" mit dem ich auf die Kundenliste (datensätze)zugreife. In der neuen Zeile will ich einen anderen Datensatz einfügen. Da ich aber nur eine Zentrale Kombiliste habe bleiben alle Zellen mit Ihr verbunden. Ändere ich sie ändern sich auch alle Zeilen davor. Wie kann ich das verhindern???

Antwort 6 von JoeKe

Moin,

das kann man ohne deinen Code zu kennen nicht sagen.

Gruß

JöKe

Antwort 7 von kuestenjung06

Hallöchen

Sub Formel()
ActiveCell.FormulaR1C1 = "=VLOOKUP(R8C7,Kundendatei!R4C1:R28C11,2,FALSE)"
End Sub

Das ist eine der Sverweis formeln, mit der ich aus einem Tablot (in dem ich per Kombifeld Kunden raussuche) dieDaten des Kunden in eine Zeile eintragen will. Vorher hab ich die Zeile per Makro generiert. Das funktioniert auch. (ewig langes Makro mit Formatierungen(Schrift,Zellgröße;Ausrichtung)).

Private Sub CommandButton3_Click()
Call Neu
Call Laufjahr
Call hinzufügen

Range("18:18").Select
Selection.Font.Bold = False
End Sub

Clicke ich diesen Button wird 1. Zeile generiert
2.Eine Rechnungsnummer aktualisiert
3. der Datenstz in die zeile eingefügt.

Frage: Kann ich hier etwas einfügen damit bei neuem Click auf den Button nicht mehr die selben Daten hinzugefügt werden.


Range("F18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-4]"
Range("J18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-7]"
Range("K18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-7]"
Range("L18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-7]"
Range("M18").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[-10]"
Range("N18").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[-10]"
Range("O18").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[-10]"
Range("P18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-10]"
Range("Q18").Select
ActiveCell.FormulaR1C1 = "=R[-5]C[-9]"
Range("R18").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[-12]"

Das ist der Sub hinzufügen??? Eine Idee???

Antwort 8 von kuestenjung06

Hallo CaroS...

Bin deiner Bitte gefolgt und hab mir das durchgelesen. Da du mich darauf hingewiesen hast das ohne Code nichts geht hab ich ihn nochmal eingestellt.

Von Plauderecke kann keine Rede sein. Ich habe versucht das Problem genauer zu beschreiben. Wo ist der Fehler darin.

Brauche dringend Hilfe da ich nicht weiter komme. Ich hab auch schon die Datenbank durchfortet aber keine ähnlichen Anfragen gefunden.

Antwort 9 von Mickey

Zitat:
Ich habe versucht das Problem genauer zu beschreiben. Wo ist der Fehler darin.
Aha. Die Problematik ist, dass du bereits einen Thread mit obigem Code (A7) laufen hast, und hier jetzt weitermachst. Welchen der beiden Threads willst du weiterführen und welcher könnte geschlossen werden? Die User posten hier sonst kreuz und quer.

Gruss,
Mic

Bei Eingriffen ins System, die Registry oder an Systemdateien erst eine Sicherung vornehmen©

Antwort 10 von kuestenjung06

Hallo Mickey

Ich würde den VBA verbessern II löschen (oder schließen). Ihr könnt auch beide löchen und ich stelle eine neue Anfrage.

Danke für die Info

Antwort 11 von Mickey

Sei so gut und eröffne nicht noch eine dritte Anfrage, sondern führe einen Thread so fort, wie es hier üblich ist. Dein 2ter Thread wurde wunschgemäß wieder geschlossen.

Gruss,
Mic

Bei Eingriffen ins System, die Registry oder an Systemdateien erst eine Sicherung vornehmen©