Avatar billede hjelms Nybegynder
01. november 2002 - 10:01 Der er 23 kommentarer og
1 løsning

Hurtigt ændre alle værdi i et regneark fra DKK til Euro

Hvordan kan man nemmest omregne alle de viste værdier i en Excel mappe til værdier i fx Euro? Der er flere ark som er sammenkædet, og indputværdierne ligger desværre spredt rundt omkring på de forskellige ark.
Avatar billede b_hansen Novice
01. november 2002 - 10:04 #1
hvis det alene er resultat-arket, du vil ændre, kan du jo lægge kursen i en celle (evt. skjult) og derefter gange dine resultater med denne.
Avatar billede hjelms Nybegynder
01. november 2002 - 10:07 #2
Der er desværre ikke kun et resultatark, men mange. Jeg forstiller mig mere en funktion/kopi hvor man via fx indsæt-speciel-divider kan få kopieret alle ark og samtidig omregnet.
01. november 2002 - 10:07 #3
Denne lille makro er meget hurtig :-)

Public Sub DKKtoEURO()
    Dim rCell As Range
    For Each rCell In ActiveSheet.UsedRange.Cells
        If IsNumeric(rCell.Value) And Not (rCell.Value = 0) Then
            rCell.Value = rCell.Value * 7.77
        End If
    Next rCell
End Sub
01. november 2002 - 10:07 #4
er sku ikke sikker på, andet end den oz overskriver formler - rolig nu
01. november 2002 - 10:11 #5
Public Sub DKKtoEURO()
    Dim rCell As Range
    For Each rCell In ActiveSheet.UsedRange.Cells
        If IsNumeric(rCell.Value) And Not (rCell.Value = 0) And _
            Not (rCell.HasFormula) Then
            rCell.Value = rCell.Value * 7.77
        End If
    Next rCell
End Sub
01. november 2002 - 10:12 #6
Du kan selv lege med 7.77 og * eller / alt efter kursen og hvilken vej du vil regne
01. november 2002 - 10:14 #7
Ja - så skal jeg jo læse spørgsmålet - du skal jo igennem alle arkene

Public Sub DKKtoEURO()
    Dim rCell As Range
    Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
        For Each rCell In wks.UsedRange.Cells
            If IsNumeric(rCell.Value) And Not (rCell.Value = 0) And _
                Not (rCell.HasFormula) Then
                rCell.Value = rCell.Value * 7.77
            End If
        Next rCell
    Next wks
   
    Set rCell = Nothing
    Set wks = Nothing
End Sub
Avatar billede janvogt Praktikant
01. november 2002 - 10:16 #8
Koden skal vist udvides så den dækker alle ark ....
Ellers kunne man også lige så godt bruge indsæt-speciel-divider.
Avatar billede janvogt Praktikant
01. november 2002 - 10:17 #9
:-)
Avatar billede hjelms Nybegynder
01. november 2002 - 10:18 #10
Tak for macro, men den virker desværre kun hvor det er værdier. Hvis det er resultater/formler/tekst giver det kørselsfejl 13
01. november 2002 - 10:22 #11
Ikke hos mig
01. november 2002 - 10:26 #12
IsNumeric - sikre at der kun køres på celle med værdier
NOT = 0 - sikre at der ikke divideres med nul (hvis du skulle den anden vej)
NOT .HasFormula - sikre at der ikke køres på celler med formler

Her vist på en let læselig måde

Public Sub DKKtoEURO()
    Dim rCell As Range
    Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
        For Each rCell In wks.UsedRange.Cells
            With rCell
                If IsNumeric(.Value) And _
                    Not (.Value = 0) And _
                    Not (.HasFormula) Then
                        .Value = .Value * 7.77
                End If
            End With
        Next rCell
    Next wks
   
    Set rCell = Nothing
    Set wks = Nothing
End Sub
Avatar billede hjelms Nybegynder
01. november 2002 - 10:40 #13
Flemming: Den mangler at tage højde for tekst. Ellers tror jeg den virker!
01. november 2002 - 10:56 #14
Det burde IsNumeric tage højde for - tester lige igen.
01. november 2002 - 11:06 #15
Jeg får ingen fejl her. Når den fejler kan du trykke Debug.
Tryk så Alt+G og i det vindue der fremkommer skriver du
? rCell.Address    og trykker enter - så får du den celle den fejler i - hvad har du i den celle ?
Avatar billede hjelms Nybegynder
01. november 2002 - 11:08 #16
Hvis jeg bare oprettet et nyt ark med et tal i A1 og en tekst i B2 får jeg fejlen. Hvis der ikke er nogle tekster får jeg ingen fejl.
01. november 2002 - 11:09 #17
Prøv at sende dette nye ark til mig fd@win-consult.com
01. november 2002 - 11:11 #18
Hvilken udgave af Excel bruger du - måske fejlen hænger der....
Avatar billede hjelms Nybegynder
01. november 2002 - 11:12 #19
Det er 97 SR-2
01. november 2002 - 11:14 #20
OK - jeg genstarter lige maskinen i mit 97 spejl - øjeblik
01. november 2002 - 11:21 #21
Jeg skulle mene, at du kan få denne her til at virke

Public Sub DKKtoEURO()
    Dim rCell As Range
    Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
        For Each rCell In wks.UsedRange.Cells
            With rCell
                If IsNumeric(.Value) Then
                    If Not (.Value = 0) Then
                        If Not (.HasFormula) Then
                            .Value = .Value * 7.77
                        End If
                    End If
                End If
            End With
        Next rCell
    Next wks
   
    Set rCell = Nothing
    Set wks = Nothing
End Sub
01. november 2002 - 11:21 #22
Svar
Avatar billede hjelms Nybegynder
01. november 2002 - 11:28 #23
Dagens mand! Rigtig god weekend
01. november 2002 - 11:37 #24
Ja med den titel kan det da kun blive en god week-end *GG* ilm
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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