Excel: von Userform an Tabelle

  • #1
B

Billy

Guest
Guten Tag ^^ (um 6 Uhr morgens :p

hab eine kleine Formatierungs/Makro frage

ich hab eine Userform die geht auch schön *stolz ist* aber jetzt wenn ich den Inhalt möchte an die Tabelle senden möchte, hab ich das problem dass die zelle nicht automatisch so lang ist wie der Text drein muss

was entsteht? eine krüppel ausgabe =)

kann mir wer helfen? wäre nett ^^

mfg billy
 
  • #2
Hi billy,

der Text wird nicht in mehrere Zeilen umgebrochen, und du möchtest ihn in mehreren Zeilen angezeigt bekommen. Meinst Du das ?

Oder soll die Spaltenbreite automatisch an die maximale Länge der enthaltenen Texte angepasst werden?

Gruß Matjes :)
 
  • #3
das 2. ^^

// Edit

ich habe so eben festgestellt dass wenn ich der Excel Version vom Geschäft einen mehrzeiligen Text übergebe (mal abgesehn von der Ansicht) dass bei der Zeilenschaltung so ein komisches Quadrätchen kommt. Ich weiss net wie ich das Wegbringe, weil je nach dem kommt dann das 1. in Frage

Zur Information. In dem Kästchen werden Zeilenumschaltungen gemacht ... =)
 
  • #4
Hi billy,

z.B. für Spalte J wäre das
Code:
Sub Test_columAutofit()
  ActiveSheet.Columns(10).AutoFit
End Sub

Wenn automatisch für Spalte J Zeilenumbruch gesetzt werden soll wäre das
Code:
Sub Test_columnWrap()
  ActiveSheet.Columns(10).WrapText = True
End Sub

kleine Quadrate:
anscheinend enthält dein Text aus der Userform die Zeichen
CR (Carridge Return) - zu deutsch Wagenrücklauf - oder das Tabulatorzeichen TAB. Diese werden in Excel-Texten als Quadrate dargestellt, da sie hier eigentlich nicht zugelassen sind. Das folgende Beispiel-Makro zeigt dir, wie Du sie wegbekommst.

Code:
Sub Test_SchmierzeichenWegmachen()
  Dim s_tmp As String, pos1 As Long
  s_tmp = Hallo1 & vbLf & _
          In dieser Zeile gibts Schierzeichen CR & vbCrLf & _
          In dieser Zeile gibts Schierzeichen TAB & vbTab & _
          vbTab & Hallo4
  ActiveSheet.Cells(10, 3).Value = s_tmp

 ->TAB-Zeichen durch Leerzeichen ersetzen
  pos1 = InStr(1, s_tmp, vbTab)
  Do While pos1 <> 0
    s_tmp = Left(s_tmp, pos1 - 1) &   & _
            Right(s_tmp, Len(s_tmp) - pos1)
    pos1 = InStr(1, s_tmp, vbTab)
  Loop
  
 ->CRLF-Zeichen durch LF ersetzen
  pos1 = InStr(1, s_tmp, vbCrLf)
  Do While pos1 <> 0
    s_tmp = Left(s_tmp, pos1 - 1) & vbLf & _
            Right(s_tmp, Len(s_tmp) - (pos1 + 1))
    pos1 = InStr(1, s_tmp, vbCrLf)
  Loop
  
 ->CR-Zeichen durch Leerzeichen ersetzen
  pos1 = InStr(1, s_tmp, vbCr)
  Do While pos1 <> 0
    s_tmp = Left(s_tmp, pos1 - 1) &   & _
            Right(s_tmp, Len(s_tmp) - pos1)
    pos1 = InStr(1, s_tmp, vbCr)
  Loop
  
  ActiveSheet.Cells(10, 4).Value = s_tmp

End Sub

Gruß Matjes :)
 
  • #5
danke ^^

nun muss ich irgend wie noch das ganze ding schneller machen und gut ist =D

öhm allgemeine frage

was ist besser loop oder for?

Praktisches Beispiel zum ändern Hintergrundfarbe

Code:
for x = 1 to 3
If Cells(1, x).Interior.ColorIndex <> 2 Then
  Cells(1, x).Interior.ColorIndex = 2
End If
Next

oder ist es besser das hier zu nehmen (mal abgesehn davon dass ich nicht weiss ob es geht ::))

Code:
x = 1
Do While x <= 3
If Cells(1, x).Interior.ColorIndex <> 2 Then
  Cells(1, x).Interior.ColorIndex = 2
End If
x = x + 1
Loop
 
  • #6
'For'-Schleife ist schneller.

Gruß Matjes :)
 
  • #7
Matjes schrieb:
'For'-Schleife ist schneller.

Gruß Matjes :)

danke
 
Thema:

Excel: von Userform an Tabelle

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben