Avatar billede mile Juniormester
01. oktober 2002 - 09:04 Der er 26 kommentarer og
3 løsninger

Makro - Negative tal til positive og omvendt

Hej

Jeg står lige og mangler en makro der gennemløber alle ark (uanset antal) i en projektmappe, og :

Konverterer negative tal til positive
Konverterer positive tal til negative.

Er der nogen der er frisk på dén ?
Avatar billede b_hansen Novice
01. oktober 2002 - 09:06 #1
*SS* du skal bare gange med -1 så får du ændret fortegnet.
Avatar billede b_hansen Novice
01. oktober 2002 - 09:06 #2
hov.. det skulle egetnlig bare være en kommentar...
01. oktober 2002 - 09:09 #3
Public Sub PositivNumbers()
    Dim wksTemp As Worksheet
    Dim rCell As Range
   
    For Each wksTemp In ActiveWorkbook.Worksheets
        For Each rCell In wksTemp.UsedRange
            If IsNumeric(rCell.Value) Then
                If rCell.Value < 0 Then
                    rCell.Value = rCell.Value * -1
                End If
            End If
        Next rCell
    Next wksTemp
   
    Set wksTemp = Nothing
    Set rCell = Nothing
End Sub
Avatar billede sjap Praktikant
01. oktober 2002 - 09:10 #4
Avatar billede tida Juniormester
01. oktober 2002 - 09:11 #5
Du har ikke brug for en makro

du skriver -1 i en celle
kopier derefter cellen
marker de områder der skal have vendt fortegn
indsæt speciel funktionen
multiplicer
ok

alle tal er herefter vendt
01. oktober 2002 - 09:11 #6
Mile - husk at ovenstående går ud over formler.
Avatar billede b_hansen Novice
01. oktober 2002 - 09:12 #7
flemming> linien "If rCell.Value < 0 Then " bør vel ændres til "If rCell.Value <> 0 Then"? Ellers konverteres kun de negative tal.
Avatar billede sjap Praktikant
01. oktober 2002 - 09:13 #8
b_hansen/flemming

Hvad med IsNumeric(rCell) ?
Avatar billede mile Juniormester
01. oktober 2002 - 09:13 #9
b hansen - man kan jo også bare eks.  =(-a1) den virker uanset om du skal konvertere til det ene eller det andet, for minus minus giver jo altid plus.

Flemming  - din makro er skide god til at konvertere negativ til positiv men ikke omvendt....
Avatar billede b_hansen Novice
01. oktober 2002 - 09:15 #10
enig mile *S*

Vedrørende dit spørgsmål til flemming, så se min kommentar 09:12:08
Avatar billede mile Juniormester
01. oktober 2002 - 09:19 #11
Har jeg rettet - MEN nu bliver alt enten negativt eller positivt....Eks. hvis jeg har fem kolonner med positive og en med negative og kører makroen, så bliver ALT negativt..
Avatar billede sjap Praktikant
01. oktober 2002 - 09:19 #12
b_hansen/flemming

Det jeg mener er, er

If rCell.Value <> 0  eller If rCell.Value > 0

er vel ligegyldigt, når det er kontrolleret at der er tale om en numerisk værdi!
Avatar billede mile Juniormester
01. oktober 2002 - 09:20 #13
tida - kunsten her er at gøre det i ét huk, da der er tale om meget store projektmapper - fyldhåndtag eller ej så ville det blive et hestearbejde...
Avatar billede b_hansen Novice
01. oktober 2002 - 09:22 #14
enig superjab
Avatar billede mile Juniormester
01. oktober 2002 - 09:24 #15
Ja ja - gutter diskutér I bare, men jeg har stadig ikke én der virker :-)
Avatar billede sjap Praktikant
01. oktober 2002 - 09:26 #16
mile
Det er altså en diskussion, hvor vi forsøger at hjælpe dig!
Avatar billede mile Juniormester
01. oktober 2002 - 09:28 #17
Ja ja super - godt ord igen, men når man som jeg er vba blind, så fatter man jo ikke en dyt af det....
Avatar billede sjap Praktikant
01. oktober 2002 - 09:32 #18
mile

Prøv med nedenstående (en lettere revision af flemmings):

  For Each wksTemp In ActiveWorkbook.Worksheets
        For Each rCell In wksTemp.UsedRange
            If IsNumeric(rCell.Value) Then
                rCell.Value = rCell.Value * -1
            End If
        Next rCell
    Next wksTemp
Avatar billede mile Juniormester
01. oktober 2002 - 09:38 #19
Hej Super

Min makro ser nu sådan ud:

Public Sub PositivNumbers()
    Dim wksTemp As Worksheet
    Dim rCell As Range
   
  For Each wksTemp In ActiveWorkbook.Worksheets
        For Each rCell In wksTemp.UsedRange
            If IsNumeric(rCell.Value) Then
                rCell.Value = rCell.Value * -1
            End If
        Next rCell
    Next wksTemp
   
    Set wksTemp = Nothing
    Set rCell = Nothing
End Sub

Men konverterer stadig alt til negativt, hvis de første kolonner er positive tal, og de sidste kolonner er negative..

Kan du se om jeg har indsat din ændring forkert ??
Avatar billede sjap Praktikant
01. oktober 2002 - 09:40 #20
Det ser umiddelbart rigtigt ud - prøver den lige selv.
Avatar billede sjap Praktikant
01. oktober 2002 - 09:42 #21
Har nu prøvet den på et meget lille område, men den virker fortrinligt!
Avatar billede b_hansen Novice
01. oktober 2002 - 09:47 #22
hmmm...... mile, har du andet end de tal, der skal konverteres i de ark?
Avatar billede b_hansen Novice
01. oktober 2002 - 09:55 #23
Du har vel ikke gemt nogle formler i dit regneark mile? For så vil du jo naturligvis få ændret negativ til negativ........

eksempel: Hvis din formel tidligere hed -sum(a1:a2), vil den efter konverteringen nu hedde sum(a1:a2), men give samme resultat, da du jo har ændret fortegn på cellerne a1 og a2.
Avatar billede mile Juniormester
01. oktober 2002 - 10:13 #24
Hmm - jeg tester lige ud fra nogle rene tal....
Avatar billede mile Juniormester
01. oktober 2002 - 10:16 #25
b hansen - du havde ret. Det var de gamle formler der drillede. Nu virker det bare...Tak for hjælpen allesammen.
Avatar billede mile Juniormester
01. oktober 2002 - 10:17 #26
superjab lægger du lige et svar ?
Avatar billede sjap Praktikant
01. oktober 2002 - 10:33 #27
så ok da :-)
Avatar billede mile Juniormester
01. oktober 2002 - 10:44 #28
Den blev jo strikket sammen af jeres udmærkede samarbejde, så I må dele i porten. Tak for det. Min bruger blev stjerneglad...
Avatar billede sjap Praktikant
01. oktober 2002 - 10:50 #29
Og så er vi jo alle glade... ;-)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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