PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBATest som spiller över till nästa radTest som spiller över till nästa rad
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-12-02 13:53
 

 Hej jag brukar göra avtal i Excel genom att sammanfoga text med innehållet i olika variabler vilket jag sedan sammanfogar i flera celler på breden och två eller flera rader på höjden utifran textmassans omfattning. Nedanför varje stycke text vill jag sedan ha en tom rad. Problemet är att denna textmassa blir olika lång beroende på innehållet i variablerna varför texten ibland kan visas på tex två rader men ibland istället på tre rader. Detta gör att det blir svårt att styra så att det alltid blir en tom rad nedanför varje stycke text. 

Jag undrar om det finns någon information som kan användas av VBA eller Excel som talar om vilka rader i en sammanfogad cell som det visas text i ? Om det finns något sådant att tillgå borde det gå att infoga en extra tom rad med VBA om det skulle behövas för att alltid få en tom rad mellan styckena.

Nytt inlägg
 2023-12-03 07:59
 
 Ändrad av Gondi  på 2023-12-03 08:34:02

Hej Klasseman,

Det är lite svårt att hjälpa dig utan vare sig någon VBA-kod, Excelformel eller ens ett skärmklipp att analysera.

Rent allmänt kan jag dock säga att en cell i Excel har följande egenskaper;

  • Cellvärde: kan exempelvis vara tal, text, logisk, matris, eller felmeddelande.
  • Cellformatering: datum, tid, valuta, bredd, fyllning, kantlinjer, justering, m.fl.

När man sammanfogar celler i Excel (koppla och centrera) slås cellerna samman och delar både cellvärdet samt cellformateringen med cellen längst upp till vänster. Alla celler blir som en enda "stor" cell.

Ovan innebär att det enbart är den översta cellen till vänster som innehåller cellvärdet, de andra cellerna är tomma. Därför blir nog det enda sättet att få reda på hur många rader text stycket innehåller med egenskapen Rows(n).RowHeight i VBA.

Varför kan du inte bara reservera tillräckligt med utrymme i din "mall" så att du inte behöver infoga några rader oavsett om stycket hamnar på två eller tre rader?

Ett annat alternativ är att infoga en textruta som pekar på din formel som skapar textstycket. Textrutor (liksom figurer) "flyter ovanpå" arbetsbladet och kan göras om till vilken storlek du vill utan att man behöver sammanfoga celler, krångla med radhöjder, eller kolumnbredder.

Nytt inlägg
 2023-12-05 07:50
 

Detta avtal är ganska styrt på totalt fyra sidor och ca 15 paragrafer där en av paragraferna i sig har 12 st punkter där varje punkt i sig tar mellan en och tre rader i anspråk. För varje enkild punkt har jag valt att sammanfoga åtta kolumner i bredd och beroende på textmassans längd en två eller tre rader i höjd. Mellan dessa 12 st punkter vill jag inte ha några tomma rader. 

Svårigheten är speciellt en av dessa punkter som ofta får plats på två rader men ibland tar upp tre rader i anspråk. För att inte riskera att något ord faller bort har jag därför för denna punkt sammanfogat åtta kolumner i bredd med tre rader i höjd.Om denna text bara skulle ta två rader i anspråk får jag då en synlig tom rad på ett ställe där jag inte vill ha en tom rad.

Fråga
Finns det någon information i Excel eller VBA som man kan tillgå för att verkligen få information om hur många rader Excel valt för att presentera den sammanfogade textmassan. 

 

Nytt inlägg
 2023-12-05 09:07
 
 Ändrad av Gondi  på 2023-12-06 05:06:46

God morgon Klasseman,

Det korta svaret är tyvärr "Nej".

Hela textmassan (cellvärdet) i en cell sparas på en enda rad, oavsett hur många rader eller kolumner du sammanfogat på arbetsbladet. Även om du har infogat manuella radbrytningar med TECKENKOD(10) sparas hela textsträngen iallafall på en rad internt i Excel. Det finns ingen "rader-per-cell"-funktion i Excel eller .NumberOfRows egenskap i VBA.

Hur cellvärdet presenteras på skärmen (samt vid utskrift) beror primärt på fontstorlek och kolumnbredd vilka styr radbrytningar, men även andra parametrar som val av font, fetstil, skalning och annat spelar roll.

Det finns mig veterligen inget sätt att utläsa hur Excel presenterar cellvärdena. Enda sättet skulle vara att skriva en funktion som tar ovan parametrar som input och därmed kan "räkna ut" (i praktiken gissa) hur många rader texten hamnar på, eller skriva en egen skrivardrivrutin.

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBATest som spiller över till nästa radTest som spiller över till nästa rad

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter