Avatar billede hugopedersen Nybegynder
07. marts 2011 - 16:59 Der er 5 kommentarer og
1 løsning

Er celle i område

Jeg sidder og roder med at lave en faktura der kan slå op i et varekartotek og så returnere data fra den valgte vare til celler i et ark.
Jeg har et ark med varedata og en form hvor jeg læser dem ind og viser dem i en listbox - alt det er på plads.

Problemet er:
Når jeg åbner vareformen, skal jeg kontrollere om den celle markøren står i er inden for området B14:F38 og hvilken linie det er (14-38)
Det skal jeg for at kunne indsætte den valgte vare på den linie hvor markøren står.

Det lyder mere kryptisk end det er tror jeg.
Avatar billede 220661 Ekspert
07. marts 2011 - 17:11 #1
På min faktura skabelon der skriver jeg varer i B kolonnen.
Når jeg indtaster navnet på en vare undersøger excel ved hjælp af loopslag om jeg her en vare med den beskrivelse jeg har valgt i prislisten. Findes dette returneres den enhed det er og prisen i hver sin koklonne.
Jeg har 5 arke til at skrive regning i, 1 prisliste og 1 timeregner.
Alle ark samarbejder i loopslag.
Avatar billede 220661 Ekspert
07. marts 2011 - 17:15 #2
Du er velkommen til at gå ind i min profil og se de oprettede spm jeg har lavet om min faktura skabelon. Der er en 4-5 stk at se på som inspiration måske:
http://www.eksperten.dk/list/spoergsmaal/220661?start=0
De forefindes både på side 1 og 2.
Avatar billede anlu Nybegynder
07. marts 2011 - 20:07 #3
Du skal vist bare have fat i

ActiveCell.Row
og
ActiveCell.Column

for at få den info du skal bruge?
Avatar billede rosco Novice
07. marts 2011 - 21:12 #4
Hvad med at Excel selv finder næste tomme linje.

'Hvis man glemmer at taste varenummer i formularen.
If txtVarenr.Text = "" Then
MsgBox "Skriv venligst Varenummer."
txtVarenr.SetFocus
'i første tomme celle i kolonne C (undtaget er de første 3 rækker), indsættes varenummer.
'i kolonne G indsættes Antal.
Else
    B = 3
Do Until Worksheets("Kasse").Cells(B, 3) = ""
    B = B + 1
  Loop
Cells(B, 3) = Varesalg!txtVarenr.Value
Cells(B, 7) = Varesalg!txtAntal.Value

Application.ScreenUpdating = False
Avatar billede hugopedersen Nybegynder
07. marts 2011 - 21:28 #5
Foreløbigt resultat:

  Dim SheetNames As Name
  Dim SheetRange As Range
  Dim FoundArea As Boolean
 
  FoundArea = False
  If (ActiveSheet.Name = conSheetInvoice) Then
    On Error Resume Next
    For Each SheetNames In Names
      Set SheetRange = Range(SheetNames.Name)
      If Err = 0 Then
        If Not Intersect(ActiveCell, SheetRange) Is Nothing Then
          If SheetNames.Name = conNamedLines Then
            FoundArea = True
          End If
        End If
      Else
        Err = 0
      End If
    Next
  End If
  If FoundArea = True Then
    Settings.InvoiceLine = ActiveCell.Row
    Load frmSelectItems
    frmSelectItems.Show
  Else
    MsgBox "Du skal stå i området til fakturalinier for at kunne vælge vare", vbCritical + vbOKOnly, "Fejl placering"
  End If
Avatar billede hugopedersen Nybegynder
22. marts 2011 - 20:13 #6
Mit eget forslag blev det anvendte
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