Jag har försökt i två dagar nu att sammanfoga två celler till en tredje cell i VBA men jag gör något fel... Du måste använda den engelska motsvarigheten (precis som du gör med SUM), fast hellre kör du med &-operatorn. Suveränt! Det funkar! Som formel: Precis så långt kom jag men det är när jag ska formatera D2 det går dåligt. Jag vill lägga in VALUTA(D2) men det fungerar inte. Jag även testat FORMAT(D2; "Currency") vilket verkar fungera bättre eftersom jag inte får något felmeddelande från VBA men då förstår inte Excel vad format är eftersom det står på engelska... (Det står då #NAMN? i Excel). Jag har även testat TEXT(D2;"### 0,00") men det gick inte heller bra. En lösning är att skippa Excels funktionalitet helt och bara göra hela grejen i VBA. Tack!!! Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
Så här ser koden ut som ligger i en Sub() som anropas mha en knapp:
...
Set xlSheetTest = Sheets("BladTest")
sTmp = "=SAMMANFOGA(D2;E2)"
xlSheetTest.Range("D" & 10).Formula = sTmp
...
Kör jag programmet och trycker på knappen så att rutinen anropas får jag felmeddelandet "Körfel nr '1004' .: Program- eller objektdefinerat fel" på sista raden dvs den där D10.formula sätts till sTmp.
Trycker jag då på felsök och kollar vad sTmp innehåller så är det "=SAMMANFOGA(D2;E2)" och om jag tar värdet från sTmp-variabeln och kopierar in det i en cell Excel så fungerar det!?
Vad gör jag för fel? Får man inte använda formler i VBA?
Om jag instället testar med SUM fungerar det ju:
Set xlSheetTest = Sheets("BladTest")
sTmp = "=SUM(B8:B10)"
xlSheetTest.Range("D" & 10).Formula = sTmp
Det verkar inte heller vara något med språket eftersom om jag använder
sTmp="=CONCATENATE(D2;E2)" isf sTmp = "=SAMMANFOGA(D2;E2)" så blir det fortfarande samma felmeddelande.
Jag gör något fel men jag vet inte vad...Sv: Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
"=D2 & E2"
Sen är anropet "D" & 10 lite märkligt. Använd hellre "D10", cells(10, "D") eller cells(10, 4) istället.Sv:Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
&-operatorn testade jag tidigare utan resultat men det fungerar bra nu så något måste jag ha gjort fel tidigare.
I de två cellerna är det en valuta(D2) respektive en procentsats(E2)...
Hur gör jag för att använda funktionen VALUTA(D2) samt ett mellanslag samt (E2%) dvs E2 inom parantes med ett procenttecken efter sig?Sv: Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
=D2 & " (" & E2 & ")"
Sen är jag väl spontant lite misstänksam mot principen att skriva formler från VBA. Antingen bör det vara formler från början, eller så bör det inte vara formler alls, oftast.Sv:Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
Är jag helt ute och cyklar när jag skapar formler i VBA till Excel-cellerna?
Anledningen till att jag inte kan göra formlerna direkt i Excel är för kan vara oändligt många. Därför skapar jag dem i en for-loop och fyller cellernas .formula-del med de olika formlerna.Sv: Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
Ett annat är att komma på vad det engelska ordet för "valuta" är, och skriva det istället,
=VALUTA(D2) & " (" ...
Gissningen är ju naturligtvis Currency. Om du vill slippa gissa kan du spela in ett makro där du helt enkelt skriver in formeln, och sen kolla på koden.Sv:Lägga ihop två celler mha SAMMANFOGA(D2;E2) i VBA
Jag fick det att fungera!
Jag trodde också att det borde heta Currency men jag hittade inget om det på nätet men tack vare att du ledde mig mot att spela in ett makro så fick jag reda på vad det heter på engelska =Dollar().
Logiskt och bra inte sant?! ;)
Nu fungerar det precis som jag ville ha det.
Ännu en gång TACK!