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 som kopierar en viss formel och klistar in beroende på var markören stodMakro som kopierar en viss formel och klistar in beroende på var markören stod
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2020-01-10 08:47
 

Hej,

Är en riktig nybörjare på detta med makro, använder funktionen "Spela in" för att skapa Makro och bara göra mindre redigeringar.

Nu har jag dock kört fast och hoppas att någon kan hjälpa mig.

Bakgrunden är att jag har ett stort excelark där jag har massa adresser. Jag har hittat en formel för att via et Google api hämta cykelavstånd från Googlemaps. Problemet är bara att det finns begränsningar i hur många hämtningar man kan göra, och därför vill jag inte att hela arket ska uppdateras varje gång man gör en ändring. 

Jag har spelat in ett Makro som löser detta för en "grupp" men skulle vilja göra det dynamiskt. Det makrot gör är att det kopierar "grundformeln" i H3:K3 och klistrar sedan in den i den aktuella gruppen (H4:K8), sedan kopierar jag K4:K8 (där står nämligen värdet jag vill åt, antalet kilometer) och klistar in som värde. Avsluningsvis tar jag bort formlerna i H4:J8 igen för att inte "dra" förfrågningar mot google Api.

Klistrar in makrot nedan:

Range("H3:K3").Select

    Selection.Copy

    Range("H4:H8").Select

    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

        SkipBlanks:=False, Transpose:=False

    Range("K4:K8").Select

    Application.CutCopyMode = False

    Selection.Copy

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("H4:J8").Select

    Application.CutCopyMode = False

    Selection.ClearContents

    Range("F3").Select

End Sub 

 

Min önskar vore att man kan stå i en viss cell (försökte att spela in med relativa referenser men det blev inte heller bra) exempelvis F12, tycka snabbkommando (Ctrl+Z har jag valt) och då utföra makrot för markeringen H13:K17. Samma procedur som ovan, men det viktiga är att den hämtar formeln i H3:K3.

 

Finns säkert många bättre lösningar på detta problem och jag tar gärna emot förslag :-)

Hoppas på er hjälp!

Nytt inlägg
 2020-01-10 08:58
 
Hej hej

Längst uppe i din kod, innan du gör din första .select, så kan du skriva:

Dim rng as range: set rng = selection

Den raden hämtar in ett område eller en cell som du har markerat i excel. Sedan kan du använda rng för att klistra in, så istället för:

Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Skriver du:
rng.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _

SkipBlanks:=False, Transpose:=False

Mvh
Christian

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAMakro som kopierar en viss formel och klistar in beroende på var markören stodMakro som kopierar en viss formel och klistar in beroende på var markören stod

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