Avatar billede denero Juniormester
05. juli 2013 - 09:01 Der er 11 kommentarer og
2 løsninger

Mindre end, lig med, større end

I koden bliver 2 tekstbokse brugt til at sammenligne forskellige værdier, den ene tekstboks er den fra ovenstående kode. Der har været tilfælde, hvor tallet har været større i tekstboks1, men koden er "kommet ud med at tallet er minde. Resultatet af sammenligningen  passer åltså ikke.

Sammenligningen går i sin enkelthed ud på, mindre end, lig med, større end. Kan det evt. skyldes formateringen af disse???

Flg makroer bruges:

Sub DataMindre()
   
    If IndlæsNyeAflæsninger.AktuelAflæsning.Value < IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
    'Exit Sub
    DataTjekMindre.Show
    Else
    'Exit Sub
    Application.Run "'Energi- og vandaflæsning.xlsm'!DataLig"
    End If

End Sub
Sub DataLig()
   
    If IndlæsNyeAflæsninger.AktuelAflæsning.Value = IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
  ' Exit Sub
    DatatjekLig.Show
    Else
    'Exit Sub
    Application.Run "'Energi- og vandaflæsning.xlsm'!DataStørre"
    End If
   
End Sub
Sub DataStørre()

    If IndlæsNyeAflæsninger.AktuelAflæsning.Value > IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
    'Exit Sub
    DataTjekStørre.Show
    Else
    'Exit Sub
    Application.Run "'Energi- og vandaflæsning.xlsm'!GemmeData"
    End If

End Sub
Avatar billede supertekst Ekspert
05. juli 2013 - 09:11 #1
Eksempel:

Hvis der sammenlignes som vil tekstbox1 være større end tekstbox2

Private Sub UserForm_activate()
    Me.TextBox1 = 2
    Me.TextBox2 = 11
   
    If Me.TextBox1 > Me.TextBox2 Then
        Stop
    Else
        Stop
    End If
End Sub

Når Int() sættes omkring tekstbokse - sammenlignes heltalsværdien og så er tekstboks2 størst

Private Sub UserForm_activate()
    Me.TextBox1 = 2
    Me.TextBox2 = 11
   
    If Int(Me.TextBox1) > Int(Me.TextBox2) Then
        Stop
    Else
        Stop
    End If
End Sub
Avatar billede denero Juniormester
05. juli 2013 - 10:42 #2
Hej supertekst

Du må lige forklare, hvorfor der bruges 2 og 11.
Avatar billede store-morten Ekspert
05. juli 2013 - 10:58 #3
Hej danero

Jeg synes ikke den fejler?

Har tilrette lidt:
Private Sub Gem_Click()
   
    Application.Run "'Energi- og vandaflæsning.xlsm'!DataTjek"
   
End Sub

Og:
Sub DataTjek()
'DataMangler
        If IndlæsNyeAflæsninger.AktuelAflæsning.Value = "" Then
        DataTjekMangler.Show
    Else
'DataMindre
        If IndlæsNyeAflæsninger.AktuelAflæsning.Value < IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
        DataTjekMindre.Show
    Else
'DataLig
        If IndlæsNyeAflæsninger.AktuelAflæsning.Value = IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
        DatatjekLig.Show
    Else
'DataStørre
        If IndlæsNyeAflæsninger.AktuelAflæsning.Value > IndlæsNyeAflæsninger.SenesteAflæsning.Value Then
        DataTjekStørre.Show
    Else
        Application.Run "'Energi- og vandaflæsning.xlsm'!GemmeData"
            End If
                End If
                    End If
                        End If
End Sub
Avatar billede supertekst Ekspert
05. juli 2013 - 11:04 #4
Hej denero

Det var kun et eksempel. Der er forskel på om en sammenligning udføres med tekst eller tal.
Avatar billede denero Juniormester
05. juli 2013 - 11:22 #5
Det vil sige der godt kunne have stået 7 og 3?

....og så prøver jeg det lige af.
Avatar billede store-morten Ekspert
05. juli 2013 - 11:24 #6
Og har tilrette 3 x Data tjekkes:
Application.Run "'Energi- og vandaflæsning.xlsm'!GemmeData"
Avatar billede store-morten Ekspert
05. juli 2013 - 11:39 #7
Jo, den fejler.

Så den kunne se sådan ud:
Sub DataTjek()
'DataMangler
        If IndlæsNyeAflæsninger.AktuelAflæsning.Value = "" Then
        DataTjekMangler.Show
    Else
'DataMindre
        If Int(IndlæsNyeAflæsninger.AktuelAflæsning) < Int(IndlæsNyeAflæsninger.SenesteAflæsning) Then
        DataTjekMindre.Show
    Else
'DataLig
        If Int(IndlæsNyeAflæsninger.AktuelAflæsning) = Int(IndlæsNyeAflæsninger.SenesteAflæsning) Then
        DatatjekLig.Show
    Else
'DataStørre
        If Int(IndlæsNyeAflæsninger.AktuelAflæsning) > Int(IndlæsNyeAflæsninger.SenesteAflæsning) Then
        DataTjekStørre.Show
    Else
        Application.Run "'Energi- og vandaflæsning.xlsm'!GemmeData"
            End If
                End If
                    End If
                        End If
End Sub
Avatar billede supertekst Ekspert
05. juli 2013 - 11:51 #8
Bemærk eksemplet med 2 og 11 - 11 er jo større end 2 som tal - mens karakteren 2 er større end karakteren 1

det kan sammenlignes hvis du sorterer tal der er defineret som tekst - der kan tilsvarende opleves.
Avatar billede denero Juniormester
05. juli 2013 - 12:48 #9
Hej Supertekst

Ja, fandt ud af, at det ikke hørte til koden og har fået det til at virke. Tak for hjælpen.

Hej Morten

Dit forslag virker også,du spottede, at der var byttet om på de 2 tekstbokse, men Supertekst var først på banen, så jeg ved ikke om der nogle uskrevne regler her på Eksperten.
Avatar billede supertekst Ekspert
05. juli 2013 - 13:15 #10
Vi kan dele..
Avatar billede store-morten Ekspert
05. juli 2013 - 13:48 #11
Ok
Avatar billede denero Juniormester
09. juli 2013 - 15:23 #12
Hej

Undskyld ventetiden - har været hængt op. Håber det går.

...og tak for svarene.
Avatar billede supertekst Ekspert
09. juli 2013 - 15:37 #13
Hej

Alt tilgivet :-) og tak for points..
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