D'r zit een fout in idd!quote:
Ik bedoel dus inderdaad de 'Plakken speciaal'-optie en dan alleen waarden en opmaak, maar dan in één keer een heel document, zonder elk werkblad opnieuw te moeten selecteren.quote:Op donderdag 19 juni 2008 21:51 schreef Dixidito het volgende:
Is er een manier om een totaal document met meerdere werkbladen op een simpele manier van al zijn formules te ontdoen en de getallen te vervangen door waarden?
Ik heb namelijk een document dat veel te groot wordt om te mailen, maar dat komt volgens mij door alle regels en formules in het document. Als ik dat op een makkelijke manier kan vervangen door alleen de waarden en opmaak is het document stukken kleiner.
als je er dan een werkbladje bij maakt kun je een nieuwe macro maken, 255 keerquote:Op vrijdag 20 juni 2008 22:41 schreef hooibaal het volgende:
Dat moet met een macro wel te organiseren zijn, toch? Ik ben niet bepaald een ervaren macrobouwer, maar als je een macro maakt die *Blad selecteert - Kopieert - Speciaalplakt - CTRL-Page Down* en dat 255 keer, dan ben je denk ik waar je wezen wil.
TeVensP.
?quote:Op vrijdag 20 juni 2008 22:55 schreef henkway het volgende:
[..]
als je er dan een werkbladje bij maakt kun je een nieuwe macro maken, 255 keer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Dim wsName as String For Each ws In Worksheets < Voeg hier de worksheetname toe aan je array > Next ws < Hier loop je door je array heen > For each ..... < geenidee > Sheets.Add Activesheet.Name = wsName & ".new" Sheets(wsName).Select Cells.Copy Sheets(wsName & ".new").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next < volgende in array > |
1 2 3 4 5 | for each ws in Worksheets values=ws.usedrange ws.usedrange=values next ws |
Wat had je nog meer gereport danquote:Op zondag 22 juni 2008 12:41 schreef DaFan het volgende:
Zo'n topicreport helpt ook geen klap, mod heeft alleen } naar ] veranderd.
'Exel' ?quote:
Ah!quote:Op zondag 22 juni 2008 12:51 schreef DaFan het volgende:
Exel -> Excel, excel -> Excel en oude topics in de OP.
ah fuckquote:
Het probleem is dat ik geen XLS kan genereren op de server zonder COM objecten te gebruiken, helaas kan / mag ik geen COM object gebruiken op de server waardoor ik wel op deze manier verder moet gaan. Lezen van een XLS bestand is geen probleem maar het schrijven wel weerquote:Op maandag 23 juni 2008 17:18 schreef Cothen het volgende:
De enige manier om in Excel meerdere gegevens onder elkaar in dezelfde tabel te krijgen, is gebruik te maken van het "tekstterugloop" (celeigenschappen). Waarbij de celbreedte net zo breed moet blijven als het breedste gegeven in de cel.
Overigens, waarom gebruik je een formaat dat alleen bedoeld is om te publiceren later weer om te bewerken? Kan je dan niet beter de .xls oom bewaren en die openen om te bewerken?
Importeren he?quote:Op dinsdag 24 juni 2008 09:34 schreef PietjePuk007 het volgende:
[ afbeelding ]
Ik wil dit graag in 1 lange lijst hebben in Acces.
Dus:
Admiral group - 30/12/06 - 455
Admiral group - 2/1/06 - 455
Admiral group - 3/1/06 - 466,75
t/m
Xstrata - 1/1/08 - 673
Oftewel, hoe krijg je een tabelvorm in databasevorm? De lijst gaat een heul stuk naar beneden en een heul stuk naar rechts dus vandaar dat zo automatisch mogelijk handig is
.
1 2 3 4 5 6 7 8 9 10 11 12 | If CheckBox1.Value = True Then Date = Worksheets("Sheet1").Range("H2").Value Worksheets("Sheet1").Range("H2").Value = Date + 152 Date = Worksheets("Sheet1").Range("I2").Value Worksheets("Sheet1").Range("HI").Value = Date + 183 Else If CheckBox1.Value = False Then Exit Sub End If End If End Sub |
1 2 | =AANTAL(data100!G:G;2) |
1 2 3 4 5 6 | x = a + b Range("A" & c).Value = x End Function |
1 2 3 4 5 6 7 8 9 | a = Range("B1").Value b = Range("B2").Value c = Range("B3").Value Som(a, b, c) End Sub |
Als je de variabele "datum" noemt ipv "date" zal het ws. een stuk beter gaan. "Date" is nl. een interne vba functie die de computerdatum opvraagt en schijnbaar ook terug kan schrijven.quote:Op woensdag 25 juni 2008 10:28 schreef BierKoning het volgende:
Ok ik heb een nogal vervelend probleem nu.
Ik ben weer bezig gegaan met VBA en opzich gaat het niet slecht. Op 1 puntje na..
Wanneer ik de volgende code gebruik:
[ code verwijderd ]
Telt hij netjes 152 dagen bij H2 op en 183 dagen bij I2. So far so good.
Alleen telt hij ook 183 dagen bij de computerdatum opDit is binnen excel een probleem (ik heb de computerdatum nodig) maar het is ook gewoon algemeen onhandig als je computerdatum +10 jaar is (door het testen)
Weet iemand hoe dit komt?
Dat is wel een leuk dingetjes zeg dat je afhankelijke dropdown menus kan maken.quote:Op vrijdag 27 juni 2008 11:17 schreef DaFan het volgende:
Data validation kan je wel gebruiken cross-sheet als je een Named range gebruikt voor je lijst in Sheet2.
(Range selecteren, Invoegen -> Naam -> Definiëren, óf direct in het witte vak linksboven (waar je celnummer staat) een naam intoetsen en op Enter drukken).
In Data Validation kan je dan kiezen voor Lijst -> =<jenaamhier>
Zo kan je ook dubbele dropdowns maken, die dus afhankelijk van de keuze uit dropdown 1 verandert...erg fijn. Zie hier voor een tutorial
Ja ik leerde dit ook pas 2 maanden terug, scheelt een BERG gezeur met VBAquote:Op zaterdag 28 juni 2008 11:59 schreef Deetch het volgende:
[..]
Dat is wel een leuk dingetjes zeg dat je afhankelijke dropdown menus kan maken.
Het klantnummer staat altijd in kolom a, in alle sheets. Het is dus een lange rits met klantnummers onder elkaar.quote:Op zaterdag 28 juni 2008 12:18 schreef DaFan het volgende:
Heb je een vaste cel waar je dat klantnummer invoert of kan dat elke cel zijn? In situatie 1 is het wel te doen, situatie 2 schier onmogelijk (automatisch = als je m intikt en op Enter ramt).
Wat wel kan, is een knop in Werkblad 1 die je gaat gebruiken om nieuwe klanten toe te voegen (met Prompts of via een Form, whatever) want dan kan je simpeler testen op het ingevoerde klantnummer.
Wat niet kan, dat kan niet. Bedankt in ieder geval.quote:Op zaterdag 28 juni 2008 12:34 schreef DaFan het volgende:
Ja daar was ik al bang voor
Kijk:
Als jij een nummer toevoegt, is er voor Excel geen manier om te kijken wáár dit is gebeurt (in welke cel). Dit kan wél als het altijd in dezelfde cel is. Je maakt dan een zogenaamde _change event, die elke keer gedaan wordt bij een wijziging in je sheet. (Kort gezegd, die cel wordt gekopieerd ergens ver weg buiten beeld en dan vergeleken met de oude waarde, is deze anders dan weet je dus dat er geknoeid is). Het is nu dus niet te doen om te bepalen óf er een nummer is toegevoegd en wáár (als je dat weet is het nummer bekend, dus kan je testen of hij al in werkblad 2 voorkomt).
Ik moet dit zelf nog even testen, misschien heb ik wel een manier om dit te omzeilen. Máár het is heir inmiddels half 9 dus ik ga even bier drinken en film kijkenMisschien vanavond nog, anders morgen! Sorry
1 |
1 |
1 2 3 | End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | LastRowB = Sheets("Sheet2").Range("A65536").End(xlUp).Row With Sheets("Sheet1") If .Range("F1").Value <> .Range("G1").Value Then NwKlantnummer = .Range("F1").Value For i = 1 To LastRowB If Sheets("Sheet2").Range("A" & i).Value = NwKlantnummer Then Followup = Sheets("Sheet2").Range("B" & i).Value Datum = Sheets("Sheet2").Range("C" & i).Value MsgBox "Klantnummer al bekend in Sheet2!" & (Chr(13)) & (Chr(13)) & "Datum: " & Datum _ & (Chr(13)) & "Actie: " & Followup, vbOKOnly, "Melding" End If Next i .Range("G1").Value = .Range("F1").Value End If End With End Sub |
Hier heb ik helemaal wel wat aan. Het werkt precies zoals ik dat wil hebben.quote:Op zondag 29 juni 2008 07:01 schreef DaFan het volgende:
Ok Dirkh het is gelukt
Hoop dat je hier wat aan hebt!
1 |
1 2 3 4 | ""&[u]&" uur en "&m&" minuten [u]" uur en "m" minuten &[u]&" uur en "&m&" minuten |
Je bent echt een heldquote:Op dinsdag 1 juli 2008 14:21 schreef DaFan het volgende:
Kan wel, morgen op werk ok? Kan je wel nog even het volgende toelichten:
- Wat kolom A gaan doen op die rij als of B-C-D verandert?
- Kan je geen hulpkolom maken waar de aangepaste datum inkomt? DAt scheelt HEEL veel werk.
- Wat komt er in B1-E1 ?
Gister op het werk een en ander aangepast en het werkt geweldig. Op deze manier voorkom ik dat er twee afspraken of acties elkaar gaan kruisen. Dus nogmaals bedankt.quote:Op zondag 29 juni 2008 14:51 schreef DaFan het volgende:
Als je nog wat aanpassingen moet hebben kan je nog wel even terugkomen, maar eerst zelf proberenEn het was eigenlijk simpeler dan ik dacht
Geen probleem natuurlijk, succes ermee.
Ik vond het al knap van je dat je om half 6 's morgens begint aan DirkH's probleemquote:Op dinsdag 1 juli 2008 14:32 schreef DaFan het volgende:
Ik woon niet Nederland, mar Sydney dus ga zo slapen. Over 24 uur heb je je antwoord wel het is niet zo lastig (kan gewoon met formules).
1 |
1 |
1 |
1 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | If Target.Column <> iStatusColumn Then Exit Sub LastRowB = Sheets("Sheet2").Range("A65536").End(xlUp).Row NwKlantnummer = Cells(Target.Row, iStatusColumn).Value For i = 1 To LastRowB If Sheets("Sheet2").Range("A" & i).Value = NwKlantnummer Then Followup = Sheets("Sheet2").Range("B" & i).Value Datum = Sheets("Sheet2").Range("C" & i).Value MsgBox "Klantnummer al bekend in Sheet2!" & (Chr(13)) & (Chr(13)) & "Datum: " & Datum & (Chr(13)) & "Actie: " & Followup, vbOKOnly, "Melding" End If Next i End Sub |
Ok het werkt! Je code heb ik in zoverre aangepast dat ik " ; " ipv " , " heb, anders pakte Excel hem niet. Verder B2 C2 enz verandert in B1 C1 enzoquote:Op woensdag 2 juli 2008 01:21 schreef DaFan het volgende:
BierKoning:
A1 is je datum, B1 tot E1 zijn je cellen zoals beschreven, H1 is je hulpkolom en kan verplaatst/hide worden:
Formule voor A1:
[ code verwijderd ]
Nederlands:
[ code verwijderd ]
Data validation C1:
Custom -> Formule:
[ code verwijderd ]
Idem voor D1 en E1 maar dan natuurlijk met C1 en D1.
1 |
zo kan het natuurlijk ookquote:Op woensdag 2 juli 2008 01:14 schreef DaFan het volgende:
Eerst qu63:
Als je uren in A1:A3 staan:
[ code verwijderd ]
Range aanpassen naar je eigen range![]()
Edit:
Nederlands:
[ code verwijderd ]
- Waarom de aparte rijen, nu haal je 1 en 2 door elkaarquote:Op woensdag 2 juli 2008 10:25 schreef BierKoning het volgende:
Verder kan ik C2 (heb inderdaad nu headers, in mn eerste test nog niet) gewoon invullen zonder B2 ingevuld te hebben.
Hierbij is dan dus C1 --> Data Validation --> formula: =B2 <> ""
"" "" "" D1 --> Data Validation --> formula: =C2 <> ""
"" "" "" E1 --> Data Validation --> formula: =D2 <> ""
Dat lijkt mij ook de bedoeling?quote:Op woensdag 2 juli 2008 10:35 schreef BierKoning het volgende:
Het is wel backwards compatibleAls ik eerst E2 invul, dan telt ie braaf 400 op, als ik daarna B2/C2/D2 invul doet hij niks meer.
Het is alleen van belang dat de volgorde van B2 naar E2 doorloop. Ligt ook aan de gebruiker, maar een kleine backup is wel handig.
INT rondt af naar het laagste hele getal (2.9 wordt 2). Hiermee weet je hoeveel dagen je hebt (en je dus maal 24 moet doen). Uren worden namelijk in delen van een dag weergegeven (zet je format maar eens op General ipv [h]:mm, dan kan je het zelf zienquote:Op woensdag 2 juli 2008 11:09 schreef qu63 het volgende:
[..]
zo kan het natuurlijk ook
Waarom nou die int(eger) eigenlijk?
Als ik het invul krijg ik alleen de code te zien, niet het antwoord.quote:Op woensdag 2 juli 2008 01:14 schreef DaFan het volgende:
Eerst qu63:
Als je uren in A1:A3 staan:
[ code verwijderd ]
Range aanpassen naar je eigen range![]()
Edit:
Nederlands:
[ code verwijderd ]
1 |
1 |
Bedankt. Dit betekent echter dat er een hulpcel (A1 in dit voorbeeld) gebruikt moet worden, of zie ik dat verkeerd?quote:Op donderdag 3 juli 2008 12:24 schreef DaFan het volgende:
Voor de andere 2 hierboven, ik heb even geen idee, morgen
ManAtWork:
[ code verwijderd ]
Op welke manier kan je onderscheiden of een kenteken nieuw is of oud?
1 2 3 4 5 6 | Dim C As Range For Each C In Selection C.Offset(0, 0) = Format(UCase(C), "&&-&&-&&") Next End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Kenteken = Range("D18").Value If Len(Kenteken) <> 6 Then MsgBox "Geen geldig kenteken ingegeven", vbOKOnly, "Fout!" Range("D18").Value = "" Exit Sub End If If IsNumeric(Right(Kenteken, 1)) = True And IsNumeric(Right(Kenteken, 2)) = False Then Kenteken = Format(UCase(Kenteken), "&&-&&&-&") Range("D18").Value = Kenteken Else Kenteken = Format(UCase(Kenteken), "&&-&&-&&") Range("D18").Value = Kenteken End If Range("AL1").Value = Range("D18").Value End If |
Dat zou al moeten gebeuren als ie in je Worksheet_change event staat.quote:Op donderdag 3 juli 2008 16:07 schreef ManAtWork het volgende:
Check! Dit werkt.
Is het ook nog mogelijk dat de macro automatisch wordt uitgevoerd nadat er op ENTER is gedrukt bij het invullen van D18? Of vraag ik nu teveel?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Kenteken = Range("D18").Value If IsNumeric(Right(Kenteken, 1)) = True And IsNumeric(Right(Kenteken, 2)) = False Then Kenteken = Format(UCase(Kenteken), "&&-&&&-&") Range("D18").Value = Kenteken Else Kenteken = Format(UCase(Kenteken), "&&-&&-&&") Range("D18").Value = Kenteken End If Range("AL1").Value = Range("D18").Value End Sub |
application.enableEvents op false zetten aan het begin van je subje, dan weer op true aan het eindquote:Op donderdag 3 juli 2008 23:24 schreef DaFan het volgende:
[..]
Dat zou al moeten gebeuren als ie in je Worksheet_change event staat.
Edit: Ik heb me iets te snel er vanaf gemaaktProbleem nu is dat hij wéér het event gaat uitvoeren als Range("D18") gevuld wordt (niet zo verwonderlijk).
Een derde kolom maken met de volgende functie: =IF(B2>0,B2,#N/A) Hierbij uitgaande dat in B2 de absenten staan.quote:Op donderdag 3 juli 2008 17:06 schreef Xith het volgende:
[ afbeelding ]
Hoe krijg ik de grafiek zover dat de parameters met geen informatie (quarter 2,3,4) zich niet laten zien (dus dat de grafieklijn stopt na Quarter 1). De 3 quarters moeten wel bij de brongegevens blijven!
Dit werkt super. Behalve als er een fout kenteken (lees: geen 6 posities) is ingevuld. Na het invullen van een correct nummer wordt dit niet meer omgezet.quote:Op vrijdag 4 juli 2008 08:19 schreef ralfie het volgende:
[..]
application.enableEvents op false zetten aan het begin van je subje, dan weer op true aan het eind
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Application.EnableEvents = False If Range("D18").Value <> Range("AL1").Value Then kenteken = Range("D18").Value If Len(kenteken) <> 6 Then MsgBox "Geen geldig kenteken ingegeven", vbOKOnly, "Fout!" Range("D18").Value = "" Exit Sub End If If IsNumeric(Right(kenteken, 1)) = True And IsNumeric(Right(kenteken, 2)) = False Then kenteken = Format(UCase(kenteken), "&&-&&&-&") Range("D18").Value = kenteken Else kenteken = Format(UCase(kenteken), "&&-&&-&&") Range("D18").Value = kenteken End If Range("AL1").Value = Range("D18").Value End If Application.EnableEvents = True End Sub |
Maar de punten die ik wil 'verbergen' uit de grafiek zijn !VERW (verwijzing fout), ook met zo'n folmule:quote:Op vrijdag 4 juli 2008 08:29 schreef Deetch het volgende:
[..]
Een derde kolom maken met de volgende functie: =IF(B2>0,B2,#N/A) Hierbij uitgaande dat in B2 de absenten staan.
Vervolgens de derde kolom gebruiken om de grafiek te maken.
ja dat is logisch, wanneer er een fout is doe je exit sub waardoor de enableEvents=true niet meer wordt uitgevoerd. Dus datzo even daarvoor zetten hequote:Op vrijdag 4 juli 2008 09:18 schreef ManAtWork het volgende:
[..]
Dit werkt super. Behalve als er een fout kenteken (lees: geen 6 posities) is ingevuld. Na het invullen van een correct nummer wordt dit niet meer omgezet.
Dit is wat ik er nu heb staan.
[ code verwijderd ]
(Wordt toch eens tijd om me hier verder in te verdiepen,...)
edit: Laat maar. Heb het al voor elkaar. (Even rustig nadenken levert ook resultaat.quote:Op vrijdag 4 juli 2008 17:35 schreef ralfie het volgende:
[..]
ja dat is logisch, wanneer er een fout is doe je exit sub waardoor de enableEvents=true niet meer wordt uitgevoerd. Dus datzo even daarvoor zetten he
1 |
1 |
Je kunt op basis van een bepaalde inhoud van een cel elders een uitkomst genereren. Op basis van die inhoud kun je weer verder. Dus als er een "/" in voorkomt geef je een 0, anders een 1. Dan pas, op basis van die 0 of 1, die tussenstap, doorgaan.quote:Op maandag 7 juli 2008 10:48 schreef BierKoning het volgende:
Hoe kan ik data in 1 cell splitsen naar meerdere cellen?
Ik heb bijvoorbeeld de volgende data:
[ code verwijderd ]
Waarvan ik de data binnen de " " (zie hieronder) wil splitsen naar verschillende cellen.
[ code verwijderd ]
Niet elke code is gelijk aan elkaar, dus het kan ook zijn dat de "141" van hierboven, ook soms ".../141" heet. Dus ik kan niet splitsen op basis van aantallen tekens, alleen op het feit dat alle " " in een andere cel wordt geplaatst.
Nee want bijvoorbeeld "T BW" of "ss nb" horen bij elkaar. Verder kan PC ook "H-L045" worden.quote:Op maandag 7 juli 2008 10:51 schreef PietjePuk007 het volgende:
Kan je met "alles vervangen" de "/" niet weghalen en dan alsnog op posities scheiden?
Nee,quote:Op maandag 7 juli 2008 11:11 schreef DaFan het volgende:
BierKoning is die lengte van de string altijd hetzelfde, afgezien van die 141 of /141?
1 2 3 4 5 6 7 8 9 10 | EN 287-1 141/111 T BW 5 S / B t16(3/13) D168 H–L045 ss nb 1 EN 287-1 141 T BW 5 S t6 D51 H–L045 ss nb 1 EN 287-1 141 T BW 5 S t7 D168 H–L045 ss nb 1 EN 287-1 141 T BW 5 S t5.8 D50 H–L045 ss nb 1 EN 287-1 141 T BW 5 S t6.4 D158 H–L045 ss nb 1 EN 287-1 141 T BW 5 S t4 D38 H–L045 ss nb 2 EN 287-1 135 P BW 1.2 S t8 PF ss nb 2 EN 287-1 135/136 T BW 1.1 S / S t12(12/12) D168 PC ss nb 2 EN 287-1 .../135 T BW 1.1 ... / S t16(.../) D168 PC ss nb 2 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |