Avatar billede johnfm Nybegynder
08. december 2004 - 18:00 Der er 4 kommentarer og
1 løsning

Forsættelse af spørgsmål 568912 vælg mellem to MsgBox

Makroen neden for funger perfekt, men jeg vil gerne have den til også at kunne kende forskel på to typer nr. et der kun består af tal og et der består af bogstaver og tal, er det muligt????

For når et Jobnr der indeholder bogstaver, vil jeg gerne kunne hente oplysninger fra Projektmappen JOBnrMed_Tekst og vise dem i MsgBox, men kun fra følgende kolonner i projektmappen JOBnrMed_Tekst.
A, Jobnr
B, Tekst
Findes den nye ”type” Jobnr ikke (når det er skrevet ind i C8-C20) når jeg dobbelt klikker på Jobnr, vil jeg gerne have følgende meddelelse vist i en MsgBox, ” Du har skrevet et forkert Projektnr der ikke findes.”.

Læs evt forklaring i spørgsmål 568912


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim wkbJobs As Workbook
  Dim wksJobs As Worksheet
  Dim rCurReg As Range
  Dim rCell As Range
  Dim stTarget As String
  Dim MyFound As Boolean
  ' DoubleClick på projektnr.
  ‘If IsEmpty(Target) Then GoTo ProgErr
  ‘On Error GoTo ProgErr

  If Not Intersect(Target, Range("C8:C500")) Is Nothing Then
      Application.ScreenUpdating = False
      Cancel = True
      Set wkbJobs = Application.Workbooks.Open(Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\")) & "JOBnrMed_Tekst.xls")
      Set wksJobs = wkbJobs.Worksheets(1)
      Set rCurReg = wksJobs.Range("A1").CurrentRegion
      Set rCurReg = rCurReg.Offset(1, 0).Resize(rCurReg.Rows.Count - 1)
      stTarget = UCase(Trim$(CStr(Target.Value)))
      For Each rCell In rCurReg.Columns(1).Cells
          If UCase(Trim$(CStr(rCell.Value))) = stTarget Then
              If stTarget Like "[A-Z]*" Then
                  MsgBox "JobNr.:    " & Target.Value & vbCrLf & _
                      "Tekst:      " & rCell.Offset(0, 1).Value & vbCrLf, _
                      vbInformation, "Projekt information"
                      MyFound = True
                  Exit For
              Else
              Str1 = "JobNr.:    " & Target.Value & vbCrLf & _
                      "Tekst:      " & rCell.Offset(0, 1).Value & vbCr & _
                      "VHC:        " & rCell.Offset(0, 2).Value & vbCr & _
                      "Ans. rep.:  " & rCell.Offset(0, 3).Value & vbCr & _
                      "Job prior. :" & rCell.Offset(0, 4).Value & vbCr & _
                      "KKSnr :    " & rCell.Offset(0, 5).Value & vbCr & _
                      "Dato :      " & rCell.Offset(0, 6).Value & vbCr
                  MsgBox Str1, vbInformation, "Projekt information"
                  MyFound = True
                  Exit For
              End If
          End If
      Next rCell
     
      wkbJobs.Close SaveChanges:=False
      If MyFound = False Then GoTo ProgErr
      GoTo CleanUP
  End If

ProgErr:

  MsgBox "”Enten har du skrevet forkert Jobnr, der ikke findes i D7i," & vbCr & _
  "eller også findes Jobnr ikke i VHC for Værksted.”.!", _
  vbCritical + vbOKOnly, "Systeminformation"

CleanUP:
  Set wkbJobs = Nothing
  Set wksJobs = Nothing
  Set rCurReg = Nothing
  Set rCell = Nothing
  Application.ScreenUpdating = True
End Sub
Avatar billede kabbak Professor
08. december 2004 - 19:00 #1
If IsNumeric(Target.Value) Then
MsgBox "det er tal"
Else
MsgBox "det er bogstaver i"
End If
Avatar billede bak Forsker
08. december 2004 - 20:29 #2
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim wkbJobs As Workbook
  Dim wksJobs As Worksheet
  Dim rCurReg As Range
  Dim rCell As Range
  Dim stTarget As String
  Dim MyFound As Boolean
  ' DoubleClick på projektnr.
  'If IsEmpty(Target) Then GoTo ProgErr
  'On Error GoTo ProgErr

    If Not Intersect(Target, Range("C8:C500")) Is Nothing Then
        Application.ScreenUpdating = False
        Cancel = True
        Set wkbJobs = Application.Workbooks.Open(Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\")) & "JOBnrMed_Tekst.xls")
        Set wksJobs = wkbJobs.Worksheets(1)
        Set rCurReg = wksJobs.Range("A1").CurrentRegion
        Set rCurReg = rCurReg.Offset(1, 0).Resize(rCurReg.Rows.Count - 1)
        stTarget = UCase(Trim$(CStr(Target.Value)))
        For Each rCell In rCurReg.Columns(1).Cells
            If UCase(Trim$(CStr(rCell.Value))) = stTarget Then
                If Not IsNumeric(stTarget) Then
                    MsgBox "JobNr.:    " & Target.Value & vbCrLf & _
                    "Tekst:      " & rCell.Offset(0, 1).Value & vbCrLf, _
                    vbInformation, "Projekt information"
                    MyFound = True
                    Exit For
                Else
                    Str1 = "JobNr.:    " & Target.Value & vbCrLf & _
                    "Tekst:      " & rCell.Offset(0, 1).Value & vbCr & _
                    "VHC:        " & rCell.Offset(0, 2).Value & vbCr & _
                    "Ans. rep.:  " & rCell.Offset(0, 3).Value & vbCr & _
                    "Job prior. :" & rCell.Offset(0, 4).Value & vbCr & _
                    "KKSnr :    " & rCell.Offset(0, 5).Value & vbCr & _
                    "Dato :      " & rCell.Offset(0, 6).Value & vbCr
                    MsgBox Str1, vbInformation, "Projekt information"
                    MyFound = True
                    Exit For
                End If
            End If
        Next rCell
        If MyFound = False Then
            If Not IsNumeric(stTarget) Then
                MsgBox "Du har skrevet et forkert Projektnr der ikke findes."
            Else
                MsgBox "”Enten har du skrevet forkert Jobnr, der ikke findes i D7i," & vbCr & _
                "eller også findes Jobnr ikke i VHC for Værksted.”.!", _
                vbCritical + vbOKOnly, "Systeminformation"
            End If
        End If
        wkbJobs.Close SaveChanges:=False
ProgErr:
CleanUP:
        Set wkbJobs = Nothing
        Set wksJobs = Nothing
        Set rCurReg = Nothing
        Set rCell = Nothing
        Application.ScreenUpdating = True
    End If
End Sub
Avatar billede johnfm Nybegynder
08. december 2004 - 21:25 #3
Bak
Din makro virker igen perfekt, smid lige et svar så du kan få lidt point.TAK.
Avatar billede bak Forsker
08. december 2004 - 21:57 #4
jeps her er et svar.  har eksperimenteret lidt med at hente data een gang istedet for at åbne den anden projektmappe flere gange.. jeg sender når den funker ok..
Avatar billede johnfm Nybegynder
08. december 2004 - 22:18 #5
Det lyder fint, her er lidt point.
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