• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

De macro van oa Luc en Ad,

Status
Niet open voor verdere reacties.

ulla

Gebruiker
Lid geworden
22 mei 2006
Berichten
25
Hallo,

Bedankt voor jullie eerdere gegeven macro's,

Als het kan zou ik op de volgende macro een aanpassing willen,
wie o wie helpt me uit de brand:

Sub invoer()
Application.ScreenUpdating = False
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Hoe heet het woord wat je wilt invoegen")
Range("A1").Select
Selection.Cut
Sheets("Blad2").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Wat is de afkorting van dat woord")
Range("A1").Select
Selection.Cut
Sheets("Blad2").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
Application.ScreenUpdating = True
End Sub


Ik dacht dat ik het dan naar mijn eigen stijl kon aanpassen maar ik zie de logica nog niet echt.

Wat de macro doet is goed, alleen ik zal het bereik even goed!! doorgeven.

na het invullen "wat is het woord" moet dat woord komen in cel a7"lijst"
(zo heet het werkblad)

en na het invullen van de "afkorting" moet de afkorting komen in cel b7 "lijst"

en alle volgende ingevulde waardes moet komen in a9 en b9, a11 en b11, a13 en b13.
etc etc etc.

dus zo als jullie zien slaat hij steeds een regel over.

Ik hoop dat het lukt alvast bedankt voor het denkwerk.

gr Ulla.
 
Ulla,
Wijzig de vetgedrukte regels.

Sub invoer()
Application.ScreenUpdating = False
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Hoe heet het woord wat je wilt invoegen")
Range("A1").Select
Selection.Cut
Sheets("lijst").Select
Range("A65536").End(xlUp).Offset(2, 0).Select

ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Wat is de afkorting van dat woord")
Range("A1").Select
Selection.Cut
Sheets("lijst").Select
Range("B65536").End(xlUp).Offset(2, 0).Select

ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
Application.ScreenUpdating = True
End sub


Ad.
 
Hallo Ulla,

Die Cut, en Paste geeft een trage, en zelfs iets moeilijker te begrijpen code.
Uiteraard krijg je dergelijke zaken als je de macrorecorder gebruikt... en om eerlijk te zijn: Zelfs de meest ervaren programeur zal wel 's naar de macrorecorder grijpen, om te zien wat die er van bakt. (Maar een goede programmeur zal deze code wel onherkenbaar aanpassen.)

Ga eens naar m'n website
http://www.newbytes.be
en lees daar de artikels:
Excel => Lessen
2-Navigeren in VBA Excel
3-Lussen.

Naar mijn menig is de zaak daar goed uitgelegd, en met deze kennis zal het allicht zelf lukken.

Luc
 
Laatst bewerkt:
Ad Becude zei:
Ulla,
Wijzig de vetgedrukte regels.

Sub invoer()
Application.ScreenUpdating = False
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Hoe heet het woord wat je wilt invoegen")
Range("A1").Select
Selection.Cut
Sheets("lijst").Select
Range("A65536").End(xlUp).Offset(2, 0).Select

ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
If Selection.Value = "" Then _
Selection.FormulaR1C1 = InputBox("Wat is de afkorting van dat woord")
Range("A1").Select
Selection.Cut
Sheets("lijst").Select
Range("B65536").End(xlUp).Offset(2, 0).Select

ActiveSheet.Paste
Range("A1").Select
Sheets("Blad1").Select
Range("A1").Select
Application.ScreenUpdating = True
End sub


Ad.

Oke bedankt Ad.

Alleen begint hij in rij3 ipv rij 7. kan ik dat nog veranderen, bedankt

vr gr Ulla
 
Ulla,

Zoals Luc zegt, de macro wordt ondoorzichtig en traag.
Een programeur ben ik zeker niet.
Maar zolang als je geen goede oplossing krijgt, kun je wel volstaan door een spatie of een apostrof of iets dergelijks in A5 en B5 te plaatsen.
Het is geen elegante oplossing, maar het werkt wel.
En nu maar hopen dat er iemand met een passende oplossing komt.

Groet Ad.
 
Traag is hier natuurlijk niet op z'n plaats, vermits Excel niet echt een automatische lus doorloopt (Je hebt nog eigen inbreng, en dus is het tijdsverlies niet merkbaar).

Toch zou je er rekening mee moeten houden bij het schrijven van een macro.

En in plaats van met een onduidelijke code verder te werken, had je beter mijn voorstel verder uitgewerkt. Misschien iets minder begrijpbaar als je enkel de recorder kent... maar veel makkelijker aan te passen.
Hier heb je dus die aangepaste code.

Sub Afkortingen()
Dim i As Integer
Dim strWoord As String
With Sheets("Lijst")
i = Application.WorksheetFunction.Max _
(5, .Range("A65536").End(xlUp).Row) + 2

Do
strWoord = InputBox("Geef een woord")
.Cells(i, 1).Value = strWoord
.Cells(i, 2).Value = InputBox("Geef de afkorting")
i = i + 2
Loop While strWoord <> ""
End With
End Sub

Toch ook maar 's die artikels op m'n website lezen.

Luc
 
Luc Heyndrickx zei:
Toch ook maar 's die artikels op m'n website lezen.

Ik vrees dat dat er niet van gaat komen Luc.

Erick, euh Dijkie, euh Ulla heeft voor zover ik kan nagaan al 3 topics lopen over dezelfde vraag:

hier
hier
hier

Zonder enige verwijzing naar de andere threads uiteraard :evil:

Tsja...
 
Laat ons de oorzaak op onwetendheid steken.
Ik zit reeds lang genoeg op internet, om te weten dat degenen die echt oplossingen kunnen geven, zowat alle nieuwsgroepen, en forums bezoeken, zodat een vraag zeker niet ongemerkt voorbij zal komen.
Eén vraag op één forum moet dus wel volstaan. Indien je het doet zoals het nu gebeurd is, loop je enkel het risico dat de antwoorden niet meer op elkaar afgestemd zijn... en ook door de antwoorders zal dit niet echt op prijs gesteld worden.

Maar ja... al doende leert men natuurlijk. Zullen wel beginnersfouten zijn.

Luc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan