Clever-Excel-Forum

Normale Version: Anpassen Zellinhalt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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  19 das nächste Mal kannst du mir noch mit dem Kochlöffel eins auf den Kopf hauen  72  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, 19 

das kann man zweideutig verstehen. 21 

Meinst du das?

Da ist der VBA-Befehl: Dodgy 

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, 19 

das kann man zweideutig verstehen. 21 

Meinst du das?

Da ist der VBA-Befehl: Dodgy 

Code:
ActiveCell.HorizontalAlignment = xlFill

Statt "ActiveCell" dann eben die Zelle die du brauchst.

Oder meinst du wirlich "kürzen" im Sinne von abschneiden?

19 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, 19 

prinzipiell so: 21 

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. Dodgy 

Das ist von vielen Faktoren abhängig (Schriftgröße, Schriftart und, und und...) siehe hier...
(03.07.2022, 12:03)Case schrieb: [ -> ]Hallo Primo, 19 

prinzipiell so: 21 

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. Dodgy 

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 :)