Avatar billede Cikija Nybegynder
20. juni 2013 - 11:36 Der er 7 kommentarer og
1 løsning

Print hvis else gå videre print hvis

Jeg har brug for hjælp til en makro der kan se om et tal er større end nul. Hvis det er, skal den køre denne:
F.eks:

Sheets("INDSKRIV").Select
    Range("b20").Select
   
    If Range("b20").Value > 0
--------
"hvis sand, skal den køre denne"
--------
Do Until Cells(12, 4) = Cells(12, 7)
    ActiveSheet.PrintOut Copies:=1
    Cells(12, 4) = Cells(12, 4) + 1
Loop

    Sheets("1-2").Select
    Range("d12").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
---------
så skal den gå til næste

Sheets("INDSKRIV").Select
    Range("b21").Select
   
    If Range("b21").Value > 0
-------
Så skal den køre denne
-------
Sheets("2").Select
    Range("c8").Select
    ActiveCell.FormulaR1C1 = "1"
   
Do Until Cells(8, 3) = Cells(8, 6)
  ActiveSheet.PrintOut Copies:=1
  Cells(8, 3) = Cells(8, 3) + 1
'Loop

'  Sheets("2-2").Select
  '  Range("c8").Select
  ' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    'IgnorePrintAreas:=False

OSV OSV.
Avatar billede store-morten Ekspert
20. juni 2013 - 12:01 #1
Prøv:

  If Range("b20").Value > 0 Then
   
'--------
'"hvis sand, skal den køre denne"
'--------
   
    End If
   
'--------
'så skal den gå til næste
'--------
Avatar billede Cikija Nybegynder
20. juni 2013 - 14:21 #2
Hvad gør den, hvis den ikke er sand
Jeg har prøvet ovenstående, hvorefter den gik i loop, og ikke kunne stoppe igen.
Avatar billede store-morten Ekspert
20. juni 2013 - 14:29 #3
Hvis, den ikke er sand, springer den til "End if"
Avatar billede store-morten Ekspert
20. juni 2013 - 15:07 #4
Prøv at teste denne:
Sub test()
Sheets("INDSKRIV").Select
Range("b20").Select
    If Range("b20").Value > 0 Then

    'kode, hvis B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value
   
    End If
   
Sheets("INDSKRIV").Select
Range("b21").Select
    If Range("b21").Value > 0 Then

  'kode, hvis B21 > 0
  MsgBox ActiveCell.Address & " = " & ActiveCell.Value
 
    End If
   
Sheets("INDSKRIV").Select
Range("b22").Select
    If Range("b22").Value > 0 Then

  'kode, hvis B22 > 0
  MsgBox ActiveCell.Address & " = " & ActiveCell.Value
 
    End If

Sheets("INDSKRIV").Select
Range("b23").Select
    If Range("b23").Value > 0 Then

    'kode, hvis B23 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value
    End If
     
End Sub
Avatar billede store-morten Ekspert
20. juni 2013 - 15:14 #5
Og denne:
Sub test2()
Sheets("INDSKRIV").Select
Range("b20").Select
    If Range("b20").Value > 0 Then

    'kode, hvis B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value
   
    Else
    'kode, hvis ikke B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value & " er ikke > 0"
   
    End If
   
Sheets("INDSKRIV").Select
Range("b21").Select
    If Range("b21").Value > 0 Then

  'kode, hvis B21 > 0
  MsgBox ActiveCell.Address & " = " & ActiveCell.Value
 
    Else
    'kode, hvis ikke B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value & " er ikke > 0"
   
    End If
   
Sheets("INDSKRIV").Select
Range("b22").Select
    If Range("b22").Value > 0 Then

  'kode, hvis B22 > 0
  MsgBox ActiveCell.Address & " = " & ActiveCell.Value
 
    Else
    'kode, hvis ikke B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value & " er ikke > 0"
   
    End If

Sheets("INDSKRIV").Select
Range("b23").Select
    If Range("b23").Value > 0 Then

    'kode, hvis B23 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value
   
    Else
    'kode, hvis ikke B20 > 0
    MsgBox ActiveCell.Address & " = " & ActiveCell.Value & " er ikke > 0"
   
    End If
     
End Sub
Avatar billede Cikija Nybegynder
20. juni 2013 - 15:35 #6
Den virker ikke med loop, når værdien er nul, ellers er den god nok.
Avatar billede store-morten Ekspert
20. juni 2013 - 15:46 #7
Når værdien er nul, springes denne vel over?
Avatar billede Cikija Nybegynder
20. august 2013 - 19:43 #8
Jeg fik den aldrig til at virke med ovenstående løsning.
Den meldte fejl, hvis værdien var nul.

Jeg fik den dog til at virke med at lave et par omveje, via "M4".


Sheets("1").Select
    Range("d12").Select
    ActiveCell.FormulaR1C1 = Range("m4")
   
Do Until Cells(12, 4) = Cells(12, 7)
    ActiveSheet.PrintOut Copies:=1
    Cells(12, 4) = Cells(12, 4) + 1
Loop

    Sheets("1-2").Select
    Range("e16").Select
    If Range("e16") > 0 Then ActiveSheet.PrintOut
   
   
    Sheets("2").Select
    Range("d12").Select
    ActiveCell.FormulaR1C1 = Range("m4")
   
Do Until Cells(12, 4) = Cells(12, 7)
    ActiveSheet.PrintOut Copies:=1
    Cells(12, 4) = Cells(12, 4) + 1
Loop

    Sheets("2-2").Select
    Range("e16").Select
    If Range("e16") > 0 Then ActiveSheet.PrintOut
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



Seneste spørgsmål Seneste aktivitet
I dag 16:05 win 10 vil ikke boote Af bb69 i Windows
I dag 11:20 Lenovo x390 Af tobberjas i PC
I dag 10:14 Alder i Excel Af Nanarsi i Excel
I dag 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel
I går 21:35 Flash Player Af ErikHg i Andet software