Ombyt to celler eller områder

Nedenstående makro bytter to celler eller områders indhold med hinanden. Antag fx følgende, Her vil vi gerne ombytte Vare 3 og Vare 4. Dette kan gøres ved et simpelt træk med musen, men altså også med makroen, som giver flere muligheder end brug af musen.

Vare 1
Vare 2
Vare 4
Vare 3

Når makroen afspilles, vises to inputbokse. I den første markeres den første celle eller celleområde, der skal ombyttes, i den anden den anden celle eller område.

Når der klikkes OK i den anden inputboks, byttes de to cellers indhold rundt:

Vare 1
Vare 2
Vare 3
Vare 4

Der kan også arbejdes med områder, som fx

kr. 100,00  Vare 1 
kr. 200,00  Vare 2 
kr. 300,00  Vare 3 
kr. 400,00  Vare 4 

Her markeres først beløbene, og dernæst varenavne:

Og resultatet bliver

Vare 1 kr. 100,00
Vare 2 kr. 200,00
Vare 3 kr. 300,00
Vare 4 kr. 400,00

Makroen vil også virke, selv om de celler/områder, der skal ombyttes ikke står i nærheden af hinanden.

Før:

Olsen        
Jensen        
Hansen        
Nielsen        Børge
Kristensen       Iver 
        Gunnar
        Helnuth
        Viktor

Efter:

Børge        
Iver         
Gunnar        
Helnuth       Olsen
Viktor       Jensen
        Hansen
        Nielsen 
        Kristensen

Pas på at de to områder, der skal byttes har samme størrelse og facon, ellers foretages der utilsigtede kopieringer. Og koden ser således ud:

Sub OmbytCelleindhold()
'Ombytter indholdet af to markerede områder.
'Områderne angives via to inputbokse

    Dim Omr1 As Range, Omr2 As Range
    Dim Mat1 As Variant, Mat2 As Variant

    Set Omr1 = Application.Selection
    Set Omr1 = Application.InputBox("Marker første celle eller område:", "Første område", Omr1.Address, Type:=8)
    Set Omr2 = Application.InputBox("Marker anden celle eller område:", "Andet område", Type:=8)

    Application.ScreenUpdating = False
    Mat1 = Omr1.Value
    Mat2 = Omr2.Value
    Omr1.Value = Mat2
    Omr2.Value = Mat1
    Application.ScreenUpdating = True

End Sub

- Tilbage til makroer -
- Tilbage til Excel -