Avatar billede splokit Nybegynder
30. november 2005 - 21:07 Der er 8 kommentarer og
2 løsninger

Hvis tom erstat med igen

http://eksperten.dk/spm/668220

Der er eller andet som får koden til at lave L i det...
Nogle gange virker den andre gange gør den ikke. kan man lave om på den!?

Sub test()
  Dim C As Range
  For Each C In Range("E2:O15")
      If Not IsEmpty(Cells(C.Row, 4)) Then
        If IsEmpty(C) Then C.Value = "---"
      End If
  Next
End Sub
Avatar billede bak Forsker
30. november 2005 - 21:28 #1
Man kan da sagtens lave den om, men det kræver at du fortæller hvad der er galt.
30. november 2005 - 21:48 #2
smiler - må støtte bak - men jeg har et gæt... nogle gange skriver den ikke "---" i en celle som ser tom ud??? korrekt ?!?

Måske står der et mellemrum i cellen således den ser tom ud uden at være det... det løser denne tilretning med Trim (ja, og undskyld mit kodeøje også har ændret C'et

Sub Test()
    Dim rCell As Range
    For Each rCell In Range("E2:O15")
        If Not IsEmpty(Trim$(Cells(rCell.Row, 4).Value)) Then
            If IsEmpty(Trim$(rCell.Value)) Then rCell.Value = "---"
        End If
    Next
    Set rCell = Nothing
End Sub
Avatar billede splokit Nybegynder
30. november 2005 - 22:04 #3
jeh har fra C38:O61 noget data som en makro henter op til C2:O25 med PasteSpecial.

I C38:C61 er der en formel som denne =HVIS(D50 = "";"";"On") men det er som om at den skriver noget i C:C25 hvor den ikke skal...

Flemming den gør ikke noget!? Det den skal er Hvis der er værdi i C2:C25  Skal den hvis der er tomme celler Uden værdi lave dem om til --- men kun ud for de celler i c som har en værdi.
30. november 2005 - 22:16 #4
Nå okay - så skift 4-tallet ud med et 3 tal... kolonne C hedder 3 og ikke 4 - linien skal se således ud

If Not IsEmpty(Trim$(Cells(rCell.Row, 3).Value)) Then
Avatar billede splokit Nybegynder
30. november 2005 - 22:18 #5
Denne her har samme problem den kan også se noget i de tomme celler så den printer ark 12 ud om det så kun skulle være ark 1 det virker hvis jeg sletter de tomme men det skal man ikke gøre. kan man give det er bestemt værdi at se efter!? så den tæller efter det!?
Sub Udskriv()

Antal = Application.WorksheetFunction.CountA(Worksheets("Tur").Range("C1:C25"))
If Antal > 0 Then
    Sheets("T " & Int((Antal + 1) / 2)).PrintOut Copies:=1
End If

End Sub
30. november 2005 - 22:19 #6
Glem lige alt det jeg har skrevet om trim - blot ændre det 4-tal til et 3-tal

Sub test()
  Dim C As Range
  For Each C In Range("E2:O15")
      If Not IsEmpty(Cells(C.Row, 3)) Then
        If IsEmpty(C) Then C.Value = "---"
      End If
  Next
End Sub
Avatar billede splokit Nybegynder
30. november 2005 - 22:22 #7
nej den gør ikke noget... den har bare tomme celler
30. november 2005 - 22:26 #8
tror jeg logger af nu.. jeg er for træt.
IsEmpty virker kun direkte på celler/variabler, og du skal bruge trim for at fjerne mellemrum.
Leg selv med kolonnenummeret... kolonne C = 3

Sub test()
  Dim C As Range
  For Each C In Range("E2:O15")
      If Not Trim$(Cells(C.Row, 3).Value) = "" Then
        If Trim$(C.Value) = "" Then C.Value = "---"
      End If
  Next
End Sub

Dit ekstra problem ed CountA funktionen kan kun løses ved at lave det manuelt.
Dim C As Range
antal = 0
For Each C In Range("C1:C25").Cells
    If Not Trim$(C.Value) = "" Then antal = antal + 1
Next C
If antal > 0 Then
    Sheets("T " & Int((antal + 1) / 2)).PrintOut Copies:=1
End If
30. november 2005 - 22:28 #9
beklager de forskellige indlæg *gaaaab* det sidste rigtigt.
Avatar billede splokit Nybegynder
30. november 2005 - 22:40 #10
det virker begge to... mange tak... :D Sov godt...
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