Avatar billede HHA Professor
11. december 2023 - 15:40 Der er 5 kommentarer og
2 løsninger

Bruge en værdi fra/til en formel

Hejsa,

Har en VBA jeg bruger til at gemme en Excel fil af en større fil med.
Den melder så fejl, Metoden PasteSpecial for klassen Range mislykkedes.
Tror problemet er at den finder aktive celler helt op til række 8000.
Der er intet i disse celler.

Dim thisPath As String, workbookname2 As String, shp As Shape

thisPath = Application.ActiveWorkbook.Path

ThisWorkbook.ActiveSheet.Copy


With ActiveSheet.UsedRange 
        .Copy
        .PasteSpecial xlPasteValues  *** FEJLEN MARKERES HER ***
        .PasteSpecial xlPasteFormats
    End With
   
Application.CutCopyMode = False
   
   
workbookname2 = thisPath & "\" & Range("B11") 

For Each shp In ActiveWorkbook.Sheets("Tilbud dansk").Shapes
    If shp.Type = msoFormControl Then shp.Delete
Next shp

ActiveWorkbook.SaveAs workbookname2 

ActiveWorkbook.Close
 


Har fundet denne VBA, som finder den rigtige sidste linje med data i.
Hvordan får jeg den bygget ind i ovenstående, så den kun markerer og kopierer til den sidste linje med data i?

Sub Range_End_Method()
'Finds the last non-blank cell in a single row

Dim lRow As Long
   
    'Find the last non-blank cell in column A(1)
    lRow = Cells(Rows.Count, 1).End(xlUp).Row
   
    MsgBox "Last Row: " & lRow
 
End Sub
Avatar billede MaxZpaD Professor
11. december 2023 - 18:40 #1
Prøv evt. med denne her i stedet for xlPasteValues:

With ActiveSheet.UsedRange
    .Value = .Value
End With
Avatar billede HHA Professor
12. december 2023 - 13:37 #2
Hej MaxZpaD,

Har prøvet lidt forskellige opstillinger, men ved ikke helt hvordan den skal sættes ind i formlen.

Jeg har prøvet mange, rigtigt mange muligheder, men har ikke ramt den hvor det virker 🫣😒
Ka' sgu ikke hitte u ad det.

Hvordan skal den sættes ind, vil du klippe den ind i formlen for mig?
Avatar billede MaxZpaD Professor
12. december 2023 - 16:26 #3
Hej HHA

Håber det er nedenstående, du er ude efter :-)


Dim thisPath As String, workbookname2 As String, shp As Shape

thisPath = Application.ActiveWorkbook.Path

'Denne behøves ikke, da der ikke længere kopieres
'ThisWorkbook.ActiveSheet.Copy

With ActiveSheet.UsedRange
        .Value = .Value
        'De eksisterende formater ændres ikke - så ingen grund til denne
        '.PasteSpecial xlPasteFormats
    End With

'Denne behøves ikke, da der ikke længere kopieres 
'Application.CutCopyMode = False
 
workbookname2 = thisPath & "\" & Range("B11")

For Each shp In ActiveWorkbook.Sheets("Tilbud dansk").Shapes
    If shp.Type = msoFormControl Then shp.Delete
Next shp

ActiveWorkbook.SaveAs workbookname2

ActiveWorkbook.Close
Avatar billede HHA Professor
13. december 2023 - 07:36 #4
Hej MaxZpaD,

Bøvler noget med det.
Den melder fejl på .Value = .Value
Run-time error '1004':
Application-defined or object-defined error

Har kæmpet med det, da jeg heller ikke bare ønsker at få en løsning, men den giver sgu grå hår.
Avatar billede MaxZpaD Professor
13. december 2023 - 08:43 #5
Kan det være fordi, arket er beskyttet?

Jeg har selv lige testet ".Value = .Value" uden problemer, men hvis jeg beskytter arket, får jeg også en 1004-fejl.
Avatar billede HHA Professor
13. december 2023 - 09:41 #6
Hej MaxZpaD,

Det er da det, holdk...
Kunne den da ikke bare skrive det 🫣

Tusind tak for din hjælp.
Jeg har virkelig revet mig håret og været hele vejen rundt på Google.

Det virker som det skal 👍
Avatar billede MaxZpaD Professor
13. december 2023 - 09:50 #7
Godt at det blev afklaret :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester