Print side | Luk vindue

Hjælp til ændring i macro der copy/paster

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3832
Udskrevet den: 03.Maj.2024 kl. 15:08


Emne: Hjælp til ændring i macro der copy/paster
Besked fra: Hartig
Emne: Hjælp til ændring i macro der copy/paster
Posteringsdato: 08.Mar.2019 kl. 07:22
Hej.
 
Jeg har fundet en macro, som jeg har ændret lidt i, så den fungerer, men jeg kunne godt tænke mig at den blev endnu "smartere"
 
Macroen kopierer faste celler fra 1 ark og indsætter det i et andet ark.
 
Som macroen virker nu, så skal jeg ind og vælge hvilket ark der skal kopieres fra (selvom det altid er det samme) + jeg skal klikke "ok" til de forindtastede ønskede celler der skal kopieres.
 
Kan man få den til altid at kopiere fra C:\Manuel database\DK_info.xlsx og fast vælge den range der er fortrykt, i stedet for man skal klikke "ok" i begge ark?
 
 
Macroen ser således ud:
 
 
Sub ImportDatafromotherworksheet()
    Dim wkbCrntWorkBook As Workbook
    Dim wkbSourceBook As Workbook
    Dim rngSourceRange As Range
    Dim rngDestination As Range
    Set wkbCrntWorkBook = ActiveWorkbook
    With Application.FileDialog(msoFileDialogOpen)
        .Filters.Clear
        .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa"
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count > 0 Then
            Workbooks.Open .SelectedItems(1)
            Set wkbSourceBook = ActiveWorkbook
            Set rngSourceRange = Application.InputBox(prompt:="Select source range", Title:="Source Range", Default:="$A$2:$L$4000", Type:=8)
            wkbCrntWorkBook.Activate
            Set rngDestination = Application.InputBox(prompt:="Select destination cell", Title:="Select Destination", Default:="'Hentet data'!$A$2:$L$4000", Type:=8)
            rngSourceRange.copy rngDestination
            rngDestination.CurrentRegion.EntireColumn.AutoFit
            wkbSourceBook.Close False
        End If
    End With
   
End Sub



Svar:
Besked fra: Hartig
Posteringsdato: 09.Mar.2019 kl. 15:44
Jeg har selv fundet en løsning.  Smile
 
 
Private Sub Hent_data_Click()
   
'copy data from closed workbook to active workbook
 Dim xlApp As Application
 Dim xlBook As Workbook
 Dim Sh As Object
 Set xlApp = CreateObject("Excel.Application")
'Path source workbook
 Set xlBook = xlApp.Workbooks.Open("C:\Manuel database\DK_info.xlsx")
xlBook.Sheets("DK_info").Range("A2:L4000").Copy
 xlApp.DisplayAlerts = False
 xlBook.Close
 xlApp.Quit
 Set xlBook = Nothing
 Set xlApp = Nothing
 Set xlBook = ActiveWorkbook
 Set Sh = xlBook.Sheets("Hentet data")
'Sh.Activate
 Range("A2").Select
 Sh.Paste
 Range("A1").Select
End Sub



Print side | Luk vindue