Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketOffset problem

 Besvar Besvar
Forfatter
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Emne: Offset problem
    Sendt: 24.Aug.2010 kl. 14:36
 
Jeg mangler en kode der kan automatisk gå ned i en kolonne og finde et bestemt tal. Udfra det tal skal Vba så ofsette fra en textbox til den næste tomme celle i en række? Jeg har prøvet mig frem men uden held :(
 
Til top



Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 15:31
Hej Andreas,
 
Uha, det var ikke mange informationer du der kom med Wink
 
Denne kode søger i et område (A1:A100) og finder en værdi (SkalFindes)
Når den har fundet (SkalFindes) laver den Offset på antal rækker nedad (Raekker) og antal kolonner mod høre (Kolonne)
Den celle som rammes, får værdien (SkalSkrives)
 
Prøv denne:
 
Sub Find()
'********************
SkalFindes = 100
Raekker = 10
Kolonner = 2
SkalSkrives = "Her"
'********************
For Each c In Range("A1:A100").Cells
    If c.Value = SkalFindes Then
        c.Offset(Raekker, Kolonner).Value = SkalSkrives
    End If
Next c
End Sub
 
Bemærk at Raekker og Kolonner også kan angives negativt og dermed søge opad.
 
/Allan
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 15:56
Det sku noget nemmere end den jeg selv har kreeret som er noget kringlet:
 
Private Sub CommandButton1_Click()
Set rt = Ark1
For l = 1 To rt.Range("A65536").End(xlUp).Row
If UCase(Cells(l, 1)) = TextBox2.Value Then
Cells(l, 1).Select
End If
Next l
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1) = TextBox1.Value
Set rd = Ark1
For i = 1 To rd.Range("A65536").End(xlUp).Row
If UCase(Cells(i, 1)) = TextBox2.Value Then
Cells(i, 1).Select
End If
Next i
End Sub
 
:) Men den virker :)
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 16:02
Citat: andreas andreas skrev:

Det sku noget nemmer end den jeg selv har kreeret som er noget kringlet:  
:) Men den virker :)
 
Det er jo det der er det fede ved at kode, der er ikke umiddelbart en facitliste, kreativiteten får lov at blomstre.
 
Som du sikkert har lagt mærke til, ynder jeg at kode diverse variable forekomster øverst i koden, det er meget lettere hvis du pludselig får brug for at ændre i koden igen efter et par år.
Resten er en smagssag Smile
 
Meeen Andreas, nu kan jeg jo se at du kan skrive VBA, det forpligter jo her i forummet Big smile
//Allan
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 17:28
Jeg har været rundt i forumet for at se om der er nogen jeg kan hjælpe. Men er nu selv noget af en nybegynder.  Jeg skriver også hvis jeg selv finder løsninger på problemer.
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 17:32
Jeg har prøvet at få den til at skrive "her" i den sidste række udfra det fundne C (xlRight) men kan kun få den til at tælle ned af(xlDown)
 
Private Sub Ok1_Click()
Raekker = 10
Kolonner = 3
SkalSkrives = "Her"
'********************
For Each c In Range("b5:b1000").Cells
    If c.Value = Sagsnr.Text Then
        c.End(xlright).offset(Raekker, Kolonner).Value = SkalSkrives
    End If
Next c
Unload Me
End Sub
 
Hvordan gøres dette??
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 24.Aug.2010 kl. 20:18
Jeg er ikke helt med.
 
Hvis vi nu antager at den finder Sagsnr i B5, hvilken celle skal der så skrives 'her' i?
 
//Allan
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 25.Aug.2010 kl. 08:15
Hvis Den finder sagsnr i B2 så skal der skrives "Her" i den sidste kolone.
Jeg har prøvet at ilustrer hvad det er jeg gerne vil have :) 
 
A              B             C         D  
Sags nr   Timer       Timer    Timer
100          5              5    
101          5                          
102          4              
osv..         osv..
 
DVS:
Hvis sagsnr = 100 Så skrives "Her" i D2
Hvis sagsnr = 101 så skrives "Her" i C2
OSV...
 
Jeg har lavet en userform med to textbox'er
Den første textbox indtaster man sagsnr, det gør at VBA automatisk finder rækken med det tilsvarende sagsnr.
 
Den anden textbox indtaster man timer man har brugt på sagen. Vba finder så den sidste tomme celle i kolonen og intaster timerne.
 
Håber dette var en bedre forklaring :)
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 25.Aug.2010 kl. 19:23
JEG FANT EN LØSNING PÅ DET :)
 
Private Sub Ok1_Click()
Raekker = 0
Kolonner = 1
SkalSkrives = "Her"
'********************
For Each c In Range("b5:b1000").Cells
    If c.Value = Sagsnr.Text Then
        c.End(xlToRight).offset(Raekker, Kolonner).Value = SkalSkrives
    End If
Next c
Unload Me
End Sub
 
Det virker sku Der manglede bare et TO
 
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 25.Aug.2010 kl. 21:26
Tak Andreas,
 
Sorry Embarrassed Jeg havde simpelthen ikke tid til at svare før nu, men du klare den jo alligevel Wink supercool.
 
God aften.
 
//Allan
 
 
Til top
andreas Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 22.Aug.2010
Land: Danmark
Status: Offline
Point: 35
Direkte link til dette indlæg Sendt: 26.Aug.2010 kl. 11:57
Ja det tog mig lidt tid men det gik
 
Jeg vil gerne have VBA til at skrive en Msgbox hvis den ikke finder noge??
 
Hvis der ikke findes noget C så skal der vises en besked.
 
 
 
 
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 26.Aug.2010 kl. 16:15
Noget lignene:
 
Private Sub Ok1_Click()
Raekker = 0
Kolonner = 1
SkalSkrives = "Her"
'********************
Counter = 0
For Each c In Range("b5:b1000").Cells
    If c.Value = Sagsnr.Text Then
        c.End(xlToRight).Offset(Raekker, Kolonner).Value = SkalSkrives
Counter = Counter + 1
    End If
Next c
If Counter < 1 Then MsgBox "Det blev ikke fundet noget", vbInformation
Unload Me
End Sub
 
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk