Forfatter |
Emne Søg Emne funktioner
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Emne: VBA flet felter og gør del af tekst fed Sendt: 22.Apr.2017 kl. 20:45 |
Jeg er ved at bygge en funktion, der fletter 2 celler Efter at have flettet cellerne vil jeg gerne gøre celle 2s tekst fed
Fletning går fint - men jeg kan ikke få den til efterfølgende at gøre sidste del af teksten fed. - Len værdier er fine - Sub bliver kaldt (tjekket med msgBox)
Mit bud er at cellen ikke har modtaget værdien før Sub bliver kaldt og der derfor ikkekan formateres på tekst, der ikke er der
Foreløbig kode: - - - - - - - - - - - - - - - - - - - - - - - - - - Function boldIt(navn As String, ekstra As String) Dim ln1 As Integer Dim ln2 As Integer Dim st1 As String ln1 = Len(navn) ln2 = Len(navn) + Len(ekstra) If (ln1 = ln2) Then boldIt = navn Else boldIt = navn & " - " & ekstra boldTxt ln1, ln2 End If
End Function
Public Sub boldTxt(startPos As Integer, charCount As Integer) With ActiveCell.Characters(Start:=startPos, Length:=charCount).Font .FontStyle = "Bold" End With End Sub
|
|
|
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5450
|
Sendt: 23.Apr.2017 kl. 09:47 |
Nu spørger jeg sikkert dumt, men, hvor fletter (.Merge) du cellerne i koden???
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 23.Apr.2017 kl. 14:25 |
Funktionen bliver kaldt med 2 celler som argumenter (navn, ekstra) =boldIt(E2:F2)
Så der er de to tekststrenge. De bliver så sat sammen med: boldIt = navn & " - " & ekstra
Public Sub modtager startposition for anden del af strengen og længden af hele strengen (opdagede at den manglede 3 tegn " - ", så det skal lægges til ln2)
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5450
|
Sendt: 23.Apr.2017 kl. 15:25 |
Så er det jo heller ikke to celler, du fletter, men to tekst-strenge, du samler til en - og, der er en himmel til forskel.
Du kan ikke formatere en tekst-streng i selve variablen, og du kan ikke formatere et del-resutat af en funktion... ...kort sagt: Hvad du forsøger, er ikke muligt.
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 23.Apr.2017 kl. 22:24 |
Hvis du kunne guide mig i retning af hvordan funktionen skal skrues sammen for at opnå det ønskede resultat, så vil det være brugbart :-)
|
|
Bjarnehansen
Platin bruger
Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5564
|
Sendt: 24.Apr.2017 kl. 07:46 |
uploads/397/flet_celler.xlsxher er et eks. med formler uden vba for at for stå det du vil frem til, du ønsker at lave det i vba ikke?
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 24.Apr.2017 kl. 09:29 |
Hej Bjarne
Om det er med eller uden VBA er ligegyldigt - men min foreløbige research siger VBA :-) Her er et eksempel på data:
Barselstræning |
HOLDSTART |
Mor på stoffer - sy tøj og tilbehør til
dit barn |
|
BARSELSCAFE – Bedre sovevaner |
WORKSHOP |
Gravidtræning |
HOLDSTART |
LEGESTUE KOLBØTTEN |
|
Babymassage |
|
De skal gerne flettes til:
Barselstræning
- HOLDSTART |
Mor på stoffer - sy tøj og
tilbehør til dit barn |
BARSELSCAFE – Bedre sovevaner
- WORKSHOP |
Gravidtræning - HOLDSTART |
LEGESTUE KOLBØTTEN |
Babymassage |
|
|
Bjarnehansen
Platin bruger
Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5564
|
Sendt: 24.Apr.2017 kl. 10:12 |
ok hvordan ser dit ark ud det vil måske lette forståelsen af det....
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
|
Bjarnehansen
Platin bruger
Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5564
|
Sendt: 24.Apr.2017 kl. 10:33 |
hvor har du din data og hvor skal den flyttes hen og flettes
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 24.Apr.2017 kl. 10:42 |
De to kolonner, der skal kopieres er: Plan!E2 og ned Plan!F2 og ned
De skal kopieres til Kalender!F2 og ned
Mellem dem skal indsættes " - " (mellemrum bindestreg mellemrum) Bindestreg og frem skal være fed
Hvis det er svært at indsætte løs String, så kan bindestreg mv sættes i selvstændig kolonne
|
|
Bjarnehansen
Platin bruger
Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5564
|
Sendt: 24.Apr.2017 kl. 10:57 |
Noget i stil med dette data står i ark1 de flettes i ark2 uploads/397/flet_celler2.xlsx
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag. Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 24.Apr.2017 kl. 11:11 |
Ja, bortset fra at de 3 celler i ark2 gerne skulle være 1 celle / String :-)
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5450
|
Sendt: 24.Apr.2017 kl. 12:16 |
Ja, bortset fra at de 3 celler i ark2 gerne skulle være 1 celle / String :-) |
Og, det er så det, jeg siger, ikke kan lade sig gøre, hvis det skal oprettes med en formel og skal have forskellig formatering i del-resultatet.
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 24.Apr.2017 kl. 21:36 |
Så er den klaret :-) Har faktisk 2 løsninger - men den ene er temmelig tung - så her er den lette variant:
Sub boldIt() Dim pos_bold As Integer Dim celltxt As String For i = 2 To 200000 ' first cell will always be populated - if not - exit If (Range("Plan!E" & i).Value = "") Then Exit For ' if second cell is empty - take only first cell as normal txt If (Range("Plan!F" & i).Value = "") Then Range("Kalender!F" & i).Value = Range("Plan!E" & i).Value Else ' calculate start of bold text pos_bold = Len(Range("Plan!E" & i).Value) + 1 ' create the string celltxt = Range("Plan!E" & i).Value & " - " & Range("Plan!F" & i).Value ' add string to field and add bold to last part With Worksheets("Kalender").Range("F" & i) .Value = celltxt .Characters(pos_bold).Font.Bold = True End With End If Next i End Sub
|
|
EXCELGAARD
Platin bruger
Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5450
|
Sendt: 25.Apr.2017 kl. 12:33 |
Så er den klaret :-) |
Klaret og klaret... Du gør jo ikke, som du selv beder om - i stedet samler du blot en tekst, i en celle og formatere indholdet i denne celle... Der er, hverken cellefletning, funktion eller en endelig tekst streng variabel i det... Hvis du blot havde skrevet, at du ønskede, at samle indholdet af to celler i en tredje celle ved hjælp af en makro, så havde du været langt mere præcist - din makro der, gør intet af det, som du oprindeligt bad om...
|
Husk, at trykke på [Tak], hvis du kan lide et indlæg. Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
|
|
MortenManden
Forum Begynder
Medlem: 22.Apr.2017
Land: Danmark
Status: Offline
Point: 12
|
Sendt: 26.Apr.2017 kl. 17:25 |
Jeg har blot lyttet til dig Excelgaard :-)
Som du skriver kunne det ikke løses med en funktion - derfor er jeg gået over til den her løsning, der giver det ønskede slutresultat - ikke som jeg først tænkte / ønskede det, men så resultatet er hvad jeg har brug for.
Dette er min første Excel- / VBA makro, så ja jeg kunne nok ha forklaret mig bedre, men man skal jo i gang...
|
|