Hallo zusammen :)
Müsste eine kleine Änderung sein aber ich habe wohl irgendwo einen Denkfehler oder Flüchtigkeitsfehler
Ich würde gerne den Inhalt der Zellen von D4:D100 ändern und zwar soll da nur die ersten Zeichen des Inhaltes drinstehen.
Beispiel: In Zelle D4 steht D123456789 und am Ende soll D1234 stehen
Wollte dies so lösen aber das funktioniert nicht
Code:
For Y = 2 To 100
Worksheets("PP_" & Arr(I)).Cell(Y, 4) = Left(Worksheets("PP_" & Arr(I)).Cell(Y, 4), 5)
Next
Kann mir da jemand helfen?
Lg Primo
Moin!
Ich spendiere ein (besser 2) s
Das Objekt heißt Cells()
Gruß Ralf
Hahaha
das nächste Mal kannst du mir noch mit dem Kochlöffel eins auf den Kopf hauen
macht ja Sinn, wenn ich noch weiter Zellen ansprechen muss
Danke dir Ralf.
Mal ein Tipp!
Wenn Du (noch) unsicher bist, solltest Du den Umweg über eine Objektvariable gehen, die Du per Set = zuweisen musst.
Code:
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")
Das hat den großen Vorteil, dass die Intellisense funktioniert!
Nach Eingabe von
wks.c erscheint eine Listbox mit Methoden und Eigenschaften des Objekts:
Evt kannst du mir noch bei was ähnlichem helfen.
Gibt es ne Möglichkeit bei VBA den Inhalt der Zelle auf die Breite der Zelle zu Kürzen?
Beispiel: Wenn "Amadeus Mozart" der Inhalt ist wird in der Ansicht nur "Amadeus Moz" angezeigt, kann ich über ein Befehl sagen, dass er den Inhalt von "Amadeus Mozart" auf "Amadeus Moz" ändert?
Die Anzahl der Zeichen ist von Zelle zu Zelle unterschiedlich. Bi Neugierig ob das geht.
Lg Primo
(03.07.2022, 10:05)RPP63 schrieb: [ -> ]Mal ein Tipp!
Wenn Du (noch) unsicher bist, solltest Du den Umweg über eine Objektvariable gehen, die Du per Set = zuweisen musst.
Code:
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")
Das hat den großen Vorteil, dass die Intellisense funktioniert!
Nach Eingabe von wks.c erscheint eine Listbox mit Methoden und Eigenschaften des Objekts:
Oh das kannte ich noch nicht mit wks.c.
Danke :)
Hallo Primo,
das
kann man
zweideutig verstehen.
Meinst du
das?
Da ist der VBA-Befehl:
Code:
ActiveCell.HorizontalAlignment = xlFill
Statt "
ActiveCell" dann eben die Zelle die du brauchst.
Oder meinst du wirlich "
kürzen" im Sinne von
abschneiden?
(03.07.2022, 10:38)Case schrieb: [ -> ]Hallo Primo,
das kann man zweideutig verstehen.
Meinst du das?
Da ist der VBA-Befehl:
Code:
ActiveCell.HorizontalAlignment = xlFill
Statt "ActiveCell" dann eben die Zelle die du brauchst.
Oder meinst du wirlich "kürzen" im Sinne von abschneiden?
dann habe ich ja jemanden zum lachen gebracht.
Ich meine wirklich kürzen, dass die Buchstaben, welche in der Ansicht nicht gezeigt werden, aus der Zelle gelöscht werden.
Lg Primo
Hallo Primo,
prinzipiell so:
Code:
Option Explicit
Public Sub Main_1()
Dim strTMP As String
strTMP = "Donaudampfschifffahrtsgesellschaftskapitänspatent"
If Len(strTMP) > 10 Then strTMP = Left(strTMP, 10)
Debug.Print strTMP
End Sub
Public Sub Main_2()
Dim strTMP As String
strTMP = "Amadeus Mozart"
If Len(strTMP) > 11 Then strTMP = Left(strTMP, 11)
Debug.Print strTMP
End Sub
Public Sub Main_3()
Dim strTMP As String * 11
strTMP = "Amadeus Mozart"
Debug.Print strTMP
End Sub
Allerdings haben diese Varianten ein
Problem - die Zahl
10 bzw.
11.
Das ist von
vielen Faktoren abhängig (
Schriftgröße, Schriftart und, und und...) siehe
hier...
(03.07.2022, 12:03)Case schrieb: [ -> ]Hallo Primo,
prinzipiell so:
Code:
Option Explicit
Public Sub Main_1()
Dim strTMP As String
strTMP = "Donaudampfschifffahrtsgesellschaftskapitänspatent"
If Len(strTMP) > 10 Then strTMP = Left(strTMP, 10)
Debug.Print strTMP
End Sub
Public Sub Main_2()
Dim strTMP As String
strTMP = "Amadeus Mozart"
If Len(strTMP) > 11 Then strTMP = Left(strTMP, 11)
Debug.Print strTMP
End Sub
Public Sub Main_3()
Dim strTMP As String * 11
strTMP = "Amadeus Mozart"
Debug.Print strTMP
End Sub
Allerdings haben diese Varianten ein Problem - die Zahl 10 bzw. 11.
Das ist von vielen Faktoren abhängig (Schriftgröße, Schriftart und, und und...) siehe hier...
Danke Case, werde mich in den nächsten Tagen mal damit auseinander setzen :)