DeToekomst2
Gebruiker
- Lid geworden
- 29 jul 2016
- Berichten
- 91
Middag,
<Ik stel deze vraag opnieuw omdat ik er nog steeds niet uit ben>
Ik heb een vraag.
Ik heb een bestand met een invullijst, een werkblad met dozen en een aantal werkbladen met tabellen. Nu kan ik met de invullijst alle tabellen al invullen maar ik wil tijdens het invullen ook een doos nummer invoeren. Met dat nummer geef ik aan in welke doos dit artikel moet.
Ik wil nu een VBA die het artikel in de juist doos plaatst. Daarbij moeten er meerdere artikels in één doos geplaatst kunnen worden.
Nu heb ik er al een VBA code in staan die mijn ingevoerde artikel opzoekt in tabellen en waarin ik de data kan veranderen. Als antwoord op mijn vorige vraag kreeg ik de volgende code:
(Van Quiby)
Deze werkt tot op zekere hoogte. Ik wil de code van de doos invoeren in de invoertabel. Wanneer ik op de knop 'invoeren' druk worden de gegevens in de tabellen ingevuld (bij het betreffende artikel) inclusief de doos code. Nu is het zo met bovenstaande code dat bij het indrukken van de knop invoeren alle gegevens ook worden overgenomen naar het dozen blad, terwijl hier alleen de artikelcode moet staan.
Ik dacht dat het misschien een idee was dat de artikels niet vanuit de invoertabel in de dozen worden geplaatst maar via een andere macro (die activeert bij het indrukken van een knop bijv.) en dan de artikels in alle tabellen naloopt en deze invoert in de juiste doos. Dan wordt de doos code wel ingevoerd via de invoertabel maar deze code wordt pas gebruikt als deze al in de tabel staat. Op die manier kan voorkomen worden dat alle gegevens van het artikel worden overgenomen.
Ik ben nog lerende in VBA dus ik kan dat zelf niet voor elkaar krijgen, ik hoop één van jullie wel...
Verder nog de volgende dingen:
Bij het invoeren van het artikel in de doos moet er gekeken worden naar de volgende voorwaarden:
- Een artikel mag niet 2 keer voorkomen. Dat zou betekenen dat een artikel meerdere malen bestaat en dat is nooit.
- Een doos mag niet 'overstromen'
Verder staat in het voorbeeldbestand ook het een en ander aangegeven waardoor ik hoop dat het helder is zo.
Succes en alvast bedankt voor de moeite!
<Ik stel deze vraag opnieuw omdat ik er nog steeds niet uit ben>
Ik heb een vraag.
Ik heb een bestand met een invullijst, een werkblad met dozen en een aantal werkbladen met tabellen. Nu kan ik met de invullijst alle tabellen al invullen maar ik wil tijdens het invullen ook een doos nummer invoeren. Met dat nummer geef ik aan in welke doos dit artikel moet.
Ik wil nu een VBA die het artikel in de juist doos plaatst. Daarbij moeten er meerdere artikels in één doos geplaatst kunnen worden.
Nu heb ik er al een VBA code in staan die mijn ingevoerde artikel opzoekt in tabellen en waarin ik de data kan veranderen. Als antwoord op mijn vorige vraag kreeg ik de volgende code:
Code:
Sub InDoos()
Doosnummer = Range("h4")
Artikel = Range("B4")
Sheets("Dozen overzicht").Select
Cells.Find(What:=Doosnummer, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
For X = 2 To 9
If ActiveCell.Offset(rowOffset:=X, columnOffset:=-1) = "" Then
ActiveCell.Offset(rowOffset:=X, columnOffset:=-1) = Artikel
Artikel = ""
Else
End If
Next X
End Sub
Deze werkt tot op zekere hoogte. Ik wil de code van de doos invoeren in de invoertabel. Wanneer ik op de knop 'invoeren' druk worden de gegevens in de tabellen ingevuld (bij het betreffende artikel) inclusief de doos code. Nu is het zo met bovenstaande code dat bij het indrukken van de knop invoeren alle gegevens ook worden overgenomen naar het dozen blad, terwijl hier alleen de artikelcode moet staan.
Ik dacht dat het misschien een idee was dat de artikels niet vanuit de invoertabel in de dozen worden geplaatst maar via een andere macro (die activeert bij het indrukken van een knop bijv.) en dan de artikels in alle tabellen naloopt en deze invoert in de juiste doos. Dan wordt de doos code wel ingevoerd via de invoertabel maar deze code wordt pas gebruikt als deze al in de tabel staat. Op die manier kan voorkomen worden dat alle gegevens van het artikel worden overgenomen.
Ik ben nog lerende in VBA dus ik kan dat zelf niet voor elkaar krijgen, ik hoop één van jullie wel...
Verder nog de volgende dingen:
Bij het invoeren van het artikel in de doos moet er gekeken worden naar de volgende voorwaarden:
- Een artikel mag niet 2 keer voorkomen. Dat zou betekenen dat een artikel meerdere malen bestaat en dat is nooit.
- Een doos mag niet 'overstromen'
Verder staat in het voorbeeldbestand ook het een en ander aangegeven waardoor ik hoop dat het helder is zo.
Succes en alvast bedankt voor de moeite!