Jeg har fået fumlet en macro sammen ved at genbruge en anden macro men jeg skal have tilføjet nogle ting.
Macroen
Sub Opmærkning() X2 = 1: Y2 = 1 For Y1 = 1 To 2550 If Worksheets("Box plan").Cells(Y1, 2).Value = "SENSOR" Then Y1 = Y1 + 1 If Worksheets("Box plan").Cells(Y1, 2).Value = "VALVE" Then Y1 = Y1 + 1 If Worksheets("Box plan").Cells(Y1, 2).Value = Left("I ", 2) Then Y1 = Y1 + 1 If Worksheets("Box plan").Cells(Y1, 3).Value > 0 Then Worksheets("Opmærkning").Cells(Y2, X2).Value = Worksheets("Box plan").Cells(Y1, 2).Value Y2 = Y2 + 1 If Y2 = 2550 Then X2 = X2 + 5: Y2 = 1 End If Next Y1 End Sub
spørgsmål 1
jeg har lavet følgende linie If Worksheets("Box plan").Cells(Y1, 2).Value = Left("I ", 2) Then Y1 = Y1 + 1
det jeg prøver på er at finde alle celler der starter med I og der efter ligge 1 til Y1. Det virker dog ikke
spørgsmål 2
Jeg har brug for at finde linier der starter med f.eks "ON" og sletter det som står efter 6 pladser
spørgsmål 3
Jeg har brug for at sikre mig at der f.eks max er 16 bogstaver/tal tilsammen i rækken. Det kunne være lækkert hvis man kunne få en tekstbox op hvori der står hvilken række der overskrider reglen
If Left(Worksheets("Box plan").Cells(Y1, 2).Value, 2) = "I " Then Y1 = Y1 + 1
virker men når der er 2 celler med "I " lige efter hinanden så er det kun den ene der bliver slettet. samt hvis "sensor" og "valve" kommer lige efter igen så bliver de heller ikke slettet
Hvad kan man putte ind så linien hopper til start igen eller springer de næste IF over og derved søger fra den første IF statment igen
If Left(Worksheets("Box plan").Cells(Y1, 2).Value, 2) = "ON" Then Worksheets("Opmærkning").Cells(Y2, 2).Value = Left(Worksheets("Box plan").Cells(Y1, 2).Value, 9)
virker næsten også men istedet for at det bliver skrevet i række 1 bliver det skrevet i række 2 lige ved siden af den fulde tekst
Jeg har prøvet at ændre Worksheets("Opmærkning").Cells(Y2, 2) til (Y2, X2) og (Y2, 1) for at se om det så bleve skrevet i række 1 men så sker der bare ingenting
man er nok nødt til at hoppe baglæns gennem løkken fordi at hvis man fx sletter række 10 (y1=10) så bliver række 11 øjeblikkelig til række 10, men den bliver så sprunget over fordi næste gang er Y1 jo 11
jeg forstår ikke hvad du mener (jeg er total VBA norvice)
Jeg ønsker at tælle 1 op ( Y1 = Y1 + 1) men når jeg så har gjort det ønsker jeg at starte forfra med den første IF statments men med den nye værdi i Y1
Jeg prøvede at erstatte For Y1 = 1 To 2550 med For Y1 = 2550 To 1 Step -1
men så crasher regne arket ( svare ikke)
Synes godt om
Ny brugerNybegynder
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.