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

 
ForumForumDiskussionerDiskussionerVBAVBAMakro basicsMakro basics
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-10-15 12:07
 

  Hej!

Är ny här och novis på makron. Jag har ett litet projekt jag håller på med, men har kört fast lite. Tänkte om ni som har lite mer erfarenhet kanske kan hjälpa mig.

Jag har ett blad där det finns en kolumn med ett gäng summor, låt säga att de är i SEK. Vad jag är ute efter är att bygga ett makro som med hjälp av en knapp omvärderar dessa till exempelvis EUR via en kurs som jag lägger in manuellt i samma blad. Optimalt vore om den nya EUR-summan ersatte den befintliga SEK summan i samma kolumn. Är detta görbart på något smidigt sätt, i så fall hur?

Det vore även ypperligt med en knapp som återställer allt till ursprungsvärden i den kolumnen.

Tips emottages tacksamt!

Tack på förhand

Nytt inlägg
 2019-10-15 12:38
 
Hej hej

Skrev två subbar, en för att omvandla till euro, samt en för sek. Det finns ingen kontroll i den dock, så kör man samma makro flera gånger fortsätter det bara att multiplicera. Detta går självklart att komma runt om det skulle behövas.

Sub TillSek()

'Namngiven cell för valutakurs
Dim rng As Range: Set rng = ActiveSheet.Range("rngKurs")
'Namngiven kolumn där du har dina Euro/sekkurser
Dim rng2 As Range: Set rng2 = ActiveSheet.Range("rngPengar")
Dim mcell As Range


For Each mcell In rng2
mcell.Value = mcell.Value * rng.Value
Next mcell

End Sub
Sub TillEuro()

Dim rng As Range: Set rng = ActiveSheet.Range("rngKurs")
Dim rng2 As Range: Set rng2 = ActiveSheet.Range("rngPengar")
Dim mcell As Range

For Each mcell In rng2
mcell.Value = mcell.Value / rng.Value
Next mcell

End Sub
Nytt inlägg
 2019-10-15 16:37
 

 Tack Christian för ditt snabba och utförliga svar!

Ska testa detta, och lär med stor sannolikhet återkomma med följdfrågor.

Nytt inlägg
 2019-10-27 17:41
 

 Hej igen!

Funderar lite på kontrollen du nämner i ditt tidigare svar. Är det svårt att få till att det bara går att köra en gång? Det vill säga att om ursprungsvalutan är EUR, så går det bara köra SEK knappen en gång, och om den står på SEK, så går det bara att köra EUR en gång för att återkomma till ursprungsvärdet?

Tack 

 

Nytt inlägg
 2019-11-05 08:15
 
Hej Hej

Inte jättesvårt. Lägg till en figur, döp figuren i namnrutan till antingen shpEuro, eller shpSek, beroende på vilken del som ska köras först. Koppla därefter knappen till macrot nedan. De tidigare två kan du ta bort.

Sub SwitchCUrr()

Dim rng As Range: Set rng = ActiveSheet.Range("rngKurs")
'Namngiven kolumn där du har dina Euro/sekkurser
Dim rng2 As Range: Set rng2 = ActiveSheet.Range("rngPengar")
Dim mcell As Range
'Dedikerar variabeln Shp till figuren som triggade makrot
Dim shp As Shape: Set shp = ActiveSheet.Shapes(Application.Caller)

Select Case shp.Name
Case "shpEuro"
shp.TextFrame.Characters.Text = "to SEK"
shp.Name = "shpSek"
For Each mcell In rng2
mcell.Value = mcell.Value * rng.Value
Next mcell
Case "shpSek"
shp.TextFrame.Characters.Text = "to EURO"
shp.Name = "shpEuro"
For Each mcell In rng2
mcell.Value = mcell.Value / rng.Value
Next mcell
End Select

End Sub
Nytt inlägg
 2019-11-07 11:11
 
Suveränt! Stort tack för hjälpen!
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAMakro basicsMakro basics

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