I forbindelse med en indsat tekstboks i Excel ønsker jeg følgende skal ske automatisk:
1: Tekstboks bliver automatisk højere (Flere linjer) efterhånden som mand skriver mere tekst (Skal passe med samme bredde, uanset længe af tekst)
2: Når tekstboksen bliver større, skal Excel automatisk gøre celle ved den aktuelle placering større. Altså i udgangspunktet er tekstboksen placeret i celle B3 og det er muligt at skrive noget i celle B4. Hvis der kommer ekstra tekst i tekstboksen, så den kommer til at fylde flere linjer, skal Excel automatisk gøre celle B3 større, så det fortsat er muligt at skrive noget i celle B4.
1: Hvis man bruger dit forlag, og skriver direkte i cellen, gør den ikke automatisk cellen højere deler ej heller automatisk teksten over flere linjer. Hvis celle højde automatisk bliver større, muligvis noget der kan bruges.
2: Hvis man indsætter tekst boks i celle, som er formateret som du foreslå, samme problem.
Og du fulgte eksemplet, fuldstændigt? Hvis du sætter flueben i "ombryd tekst", så ombryder den teksten over flere linjer, og udvider atutomatisk celle højden.
Du har ret, forudsat man ikke har flettet celler, der hvor der skal skrives tekst. Jeg har behov for at flette flere kolonner, f.eks. kolonne b, c, d, e, (Idet jeg på andre rækker skal have behov for at arbejde med flere kolonner). Når der er flettet kolonner, udvider den ikke række højde. Øv
Hvis du ikke har behov for at flette B3 og cellen ellers ikke bruges til noget kan du måske bruge denne makro, som evt. kan linkes til tekstboksen. Den skriver teksten fra teksboksen ind i B3, som så automatisk bliver større eller mindre, hvis du følger ebea's instruks for denne celle. Derefter retter den størrelsen af teksboksen til, så den præcis dækker B3. Det er muligt du skal tilpasse tekstboxmargin for at få det til at passe.
Sub Tekstboks() Dim TextBox1 As Shape Dim h, w, l, t As Integer Set TextBox1 = Sheet1.Shapes("Textbox 1") Range("B3") = TextBox1.TextFrame.Characters.Text t = Range("B1:B2").Height l = Range("A3").Width h = Range("B3").Height w = Range("B3").Width TextBox1.Left = l TextBox1.Top = t TextBox1.Height = h TextBox1.Width = w End Sub
Du kan også komme uden om problemet, ved at oprette en "snyde celle" uden for dit synlige skærmområde (f.eks. AA1)
Den celle, laver du med formatering "ombryd tekst" som jeg beskrev i første indlæg. Derefter laver du den i næsten samme bredde som dine flettede celler, på nær nogle få punkter. Og så indsætter du denne formel i cellen: =A1 eller tilret hvis den flettede celle starter et andet sted.
Tricket er så, at når du skriver i de flettede celler, så overføres den tekst til din "snyde celle" som med sin "ombryd tekst" formatering, automatisk udvider cellen når du skriver, og dermed også udvider i dine flettede celler.
Nogen elegant løsnng blev det ikke. Men dette var det bedste jeg kunne lave.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.