quote:Op dinsdag 22 juli 2014 15:33 schreef DIlic het volgende:
Pls een vba macro die in kolom R in elke cel naar "LMD" zoekt. elke cel heeft een stuk tekst, maar als die tekst LMD bevat dan hoort die gehele rij verwijderd te worden. Stickers jouw manier van cdatum en verwijderen van bepaalde datums werkt super!
1 2 3 4 5 6 7 | Sub fok() For Each c In Range("R:R").Cells If InStr(c.Value, "LMD") <> 0 Then c.EntireRow.Delete Next c End Sub |
Bij mij doet de macro exact wat je vraagt. De macro is wel hoofdletter gevoelig.quote:Op woensdag 23 juli 2014 11:39 schreef DIlic het volgende:
Alleen heb ik gemerkt dat hij elke rij verwijdert waarbij "LMD" in het begin van het zin voorkomt. Bestaat er een mogelijkheid dat die ook de rijen verwijdert waarbij "LMD" op een willekeurige plek staat in een zin. Dus voorbeeld:
A1. LMD is verwijderd
A2. Het is een LMD
A3. lageLMD
A4. LMDlaag
Rij A1 wordt verwijderd en rijen van A2,A3 en A4 niet, omdat inhoud van A2 niet met het woord "LMD" begint of er is tekst aangeplakt.
Weet er iemand een VBA oplossing voor dit probleem?
met UCase() kun je een goede vergelijking forceren.quote:Op woensdag 23 juli 2014 13:07 schreef Deetch het volgende:
[..]
Bij mij doet de macro exact wat je vraagt. De macro is wel hoofdletter gevoelig.
Ik neem aan dat je in je voorbeeld de "R:R" wel weer hebt vervangen door "A:A"?
klopt, ff herschrijvenquote:Op woensdag 23 juli 2014 13:09 schreef Stickers het volgende:
De macro van Deetch zoekt per rij of de cel LMD bevat, is dit het geval dan verwijderd hij deze rij. Met als gevolg dat de rijen één naar boven opschuiven, terwijl de for each verder gaat. Maw telkens als een cel LMD bevat, dan voert hij geen controle uit op de volgende cel.
Je kan net als de cdatum macro gebruik maken van een for x = lastRow to 1 step -1. Dan moet het goed gaan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Sub fok() Application.ScreenUpdating = False ActiveSheet.Range("A" & Rows.Count).End(xlUp).Select For x = ActiveCell.Row To 1 Step -1 Range("A" & x).Select If InStr(ActiveCell.Value, "LMD") <> 0 Then ActiveCell.EntireRow.Delete Next x Application.ScreenUpdating = True End Sub |
Klopt ook. Ik was in de veronderstelling dat het voor een geautmatiseerd programmaatje moest zijn om ruwe data voor te bewerken.quote:Op woensdag 23 juli 2014 14:22 schreef snabbi het volgende:
Ik weet dat er specifiek om een Macro wordt gevraagd, maar in mijn ogen is het handiger dat gebruik gemaakt wordt van Filter opties. Zorg dat je de filter aanzet op de betreffende kolommen. Zoek in je filter het criterium op van de cellen die je wilt verwijderen (dus bevat LMD). Vervolgens kan je in een keer al deze rijen verwijderen.
Het voordeel hiervan is dat iemand die niet echt met macro's kan werken, zelf ook tot een oplossing kan komen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Private Sub Worksheet_Activate() n = 1 For Each wSheet In Worksheets If wSheet.Name <> Me.Name Then n = n + 1 On Error Resume Next Me.Hyperlinks.Add Anchor:=Me.Cells(n, 3), Address:="", _ SubAddress:="'" & wSheet.Name & "'!A1", TextToDisplay:=wSheet.Name End If Next wSheet End Sub |
Jup.quote:Op vrijdag 25 juli 2014 16:40 schreef Stickers het volgende:
Hyperlink zal, voor zover ik weet, niet werken, daar hij een string gebruikt als link en geen verwijzing. Misschien kun je met =cel("bestandsnaam"), =deel() en =vind.spec() het een en ander gebruiken als verwijzing, zodat je geen macro hoeft te gebruiken.
quote:Mocht je daar geen zin in hebben, dan kun je onderstaande code plaatsen in het werkblad(rechtermuisknop op werkblad > Programmacode weergeven). Telkens als je hem activeert, dan creëert hij een nieuwe lijst hyperlinks in kolom C. Zie Cells(n, 3).Hier is 3 kolom C. Wil je dat ie begint vanaf rij 5? Dan n = 5.
[ code verwijderd ]
In het geval dat de naam van de cel gelijk is aan de naam van het tabblad kan dit werken:quote:Op dinsdag 29 juli 2014 10:05 schreef Skv het volgende:
Dag goeroes!
Ik ben doorverwezen naar dit topic vanuit mijn eigen topic. Mijn vraag is als volgt:
Ik heb nu cellen met een waarde van 1-10 er in. Als je op zo'n cel klikt, wordt je doorgelinkt naar een tweede tabblad met de legenda (1 = zeer slecht, 2 = slecht ...).
Ik wil het nu graag zo dat je moet dubbelklikken voordat hij doorgaat naar dat tabblad in plaats van enkel. Als je enkel klikt moet hij gewoon in de cel blijven staan.
Met andere woorden: de hyperlink moet pas geactiveerd worden bij dubbelklikken. Bij enkel klikken moet het invoerbericht (gegevensvalidatie) worden getoond.
Iemand een idee hoe ik dat kan doen?
1 2 3 4 | Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error Resume Next Sheets(Target.Value).Activate End Sub |
SPOILER: Code in spoilerOm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Wanneer ik het bestand open, krijg ik altijd "Error has occured" te zien, terwijl de ribbon wel gewoon wordt getoond.
[ Bericht 7% gewijzigd door Stickers op 29-07-2014 10:22:04 ]
quote:Op dinsdag 29 juli 2014 10:09 schreef Stickers het volgende:
[..]
In het geval dat de naam van de cel gelijk is aan de naam van het tabblad kan dit werken:
[ code verwijderd ]
Hiervoor geldt wel dat de cel geen link mag zijn, dan gaat ie alsnog naar het betreffende tabblad met 1 klik.
Ik heb een bestand gevonden met code waar ik wel iets mee kan. Nu begrijp ik alleen niet waarom iRibbonUI wordt gezien als Nothing.Is er een alternatief voor het geval dat de cel wél een link is? De geboden oplossing had ik via Google elders gevonden, maar die werkt helaas niet.SPOILER: Code in spoilerOm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Wanneer ik het bestand open, krijg ik altijd "Error has occured" te zien, terwijl de ribbon wel gewoon wordt getoond.Ons soort mensen, trapt reeds jaren blij van zin, het vuile plebs de modder in.
Ons soort mensen, steunpilaar van vaderland en koningin.
quote:Op vrijdag 25 juli 2014 16:40 schreef Stickers het volgende:
Hyperlink zal, voor zover ik weet, niet werken, daar hij een string gebruikt als link en geen verwijzing. Misschien kun je met =cel("bestandsnaam"), =deel() en =vind.spec() het een en ander gebruiken als verwijzing, zodat je geen macro hoeft te gebruiken.
Mocht je daar geen zin in hebben, dan kun je onderstaande code plaatsen in het werkblad(rechtermuisknop op werkblad > Programmacode weergeven). Telkens als je hem activeert, dan creëert hij een nieuwe lijst hyperlinks in kolom C. Zie Cells(n, 3).Hier is 3 kolom C. Wil je dat ie begint vanaf rij 5? Dan n = 5.
[ code verwijderd ]
Die programmacode maakte van alle tabbladen een hyperlink, dat was niet echt de bedoelingquote:Op vrijdag 25 juli 2014 17:13 schreef qu63 het volgende:
[..]
Jup.
=RECHTS(DEEL(CEL("bestandsnaam";A1);VIND.SPEC("]";CEL("bestandsnaam";A1))+1;256);4)
En HYPERLINK() werkt gewoon samen met INDIRECT()
[..]
Thanks! Dat komt in de buurt bij wat ik zoek.quote:Op donderdag 31 juli 2014 09:23 schreef Deetch het volgende:
Je moet er geen XYscatterplot van maken maar een lijngrafiek.
Dan kun je vervolgens de asopmaak aanpassen naar intervallen met 3 maanden en een andere startdatum kiezen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |