• 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.

Macro cellen legen onder bepaalde voorwaarden

Status
Niet open voor verdere reacties.

mary1995

Gebruiker
Lid geworden
2 mei 2013
Berichten
46
Goedemiddag,

Momenteel ben ik bezig om een Excel document te maken waarin bepaald kan worden welke klanten een bepaald programma gebruiken en wat zij hiervoor moeten betalen.
Nu heb ik een tabel waarin alle klanten staan die dit programma gebruiken. Deze worden toegevoegd door middel van een soort inschrijfformulier.

Nu is het zo dat deze gegevens ook weleens wijzigen. De bedoeling is dat er dus net zo'n zelfde formulier komt als het inschrijfformulier (dit is er al). Maar dat je hier niet alle waardes hoeft in te vullen en dat de klant wordt gezocht in de lijst van gebruikers. Het is ook mogelijk dat het klantnummer aangepast wordt, waarbij dus iedere klant een klantID in het excel document heeft.
Nu ben ik op zoek naar een macro die dus kijkt bij welk klantnummer de KlantID hoort en dan gaat kijken welke cellen een andere waarde in staat en die aanpast. Waarbij het dus belangrijk is dat als de cel leeg is er niets wordt aangepast. Maar als deze gevuld is dat de cel wel wordt aangepast.

Het lukt mij niet om een bijlage toe te voegen dus ik hoop dat het duidelijk is :)

Ben benieuwd of iemand mij kan helpen.

Alvast bedankt!Bekijk bijlage Trifact facturering leeg.rar
 
Laatst bewerkt:
Plaats hiervoor een relevant voorbeeld document.
 
Her is mij niet duidelijk wat je precies met dat KlantID wilt. Deze komt alleen in de tarieflijst voor.
 
Her is mij niet duidelijk wat je precies met dat KlantID wilt. Deze komt alleen in de tarieflijst voor.

Mijn collega had mij daarmee vermeld dat hij eerst de klantID moest opzoeken om vervolgens de cellen daarachter te kunnen "vervangen".
Ik zelf had daar eerst mijn twijfels over en dat heb ik ook nog steeds. Ik heb met zowel zonder die klantID als met KlantID geprobeerd om er een macro van te maken. Maar beide is mij tot op heden nog niet gelukt. Ook mijn collega komt er verder niet uit. Het is voor mij dus ook geen probleem als die kolom van KlantID eruit is. (mogelijk werkt een andere macro dan niet meer, maar dat is iets waar ik wel uit kom om die aan te passen). Het gaat mij nu vooral om dat er een macro is waarmee ik de gegevens vanuit de werkblad Tarieflijst kan aanpassen.
 
Kijk eens naar de voorbeeldknopjes op de Tarieflijst in dit document. Deze verwerken de gegevens van het kader direct links er van.
Met deze voorbeelden zou je een heel eind moeten komen:
Bekijk bijlage Trifact facturering leeg.rar

De Verwerk knop verwerkt de gegevens voor een bestaande klant.
Als er een onbekend klantnummer is ingegeven wordt gevraagd of deze als nieuwe klant moet worden toegevoegd.
De code zit achter het blad Tarieflijst.
 
Laatst bewerkt:
Top bedankt voor het snelle antwoord! Hier kan ik zeker mee verder :)
 
Ik vergat gisteravond 1 voorbeeld en dat is om het kadertje direct te vullen met klant gegevens als er een bestaand klantnummer is ingegeven.
Dat kan met dit achter hetzelfde werkblad:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address(0, 0) = "M3" Then
        Set klant = Range("B2:B26").Find(Range("M3"), Range("B2"), xlValues, xlWhole)
        If Not klant Is Nothing Then
            Range("M4:M10").Value = WorksheetFunction.Transpose(Array(Range("C" & klant.Row& & ":J" & klant.Row)))
        End If
    End If
    Application.EnableEvents = True
End Sub
 
Nog bedankt voor de aanvulling!
Wat ik mij alleen nog afvroeg met de verwijder macro. Deze is nu als cel opgenomen in het huidige tabblad als waar de rij verwijderd moet worden.
Maar is dit ook mogelijk vanuit een ander tabblad. Dus als ik hier wil dat de knop staat op de sheet Klant toevoegen, is het dan mogelijk dat er verwezen wordt naar dat klantnummer en dat op de andere sheet deze rij wordt verwijderd?
Op dit moment kom ik hier namelijk niet uit.
 
Momenteel ben ik weer even bezig met de sheet, en het gaat best goed moet ik zeggen. Nu is het zo dat echt de bedoeling is dat er allemaal losse knoppen komen voor klant bijwerken, toevoegen en verwijderen.

Op zich gaat dat allemaal lukken. Alleen er gaat iets niet goed in de code van het bijwerken. Dit ging eerst goed met de klantgegevens ophalen en daarna bijwerken en na het bijwerken even de tabel opnieuw sorteren. Nu weet ik niet wat er hier fout gaat, maar de klantgegevens ophalen stopt ineens en het bijwerken hapert inmiddels ook.
Is er iemand die voor mij hier even naar wilt kijken?

Bekijk bijlage Trifact facturering 1.xlsm
 
Je kan er ook eerst VBA van maken

Code:
Sub Bewerkklant(Rij As Long)
  Sheets("Tarieflijst").Cells(Rij, 2).Resize(, 11) = Array([K8].Value, [K9].Value, [K10].Value, [K13].Value, [K20].Value, [K18].Value, [K21].Value, [K22].Value, [K23].Value, [K24].Value, [K26].Value)
End Sub

Code:
Private Sub CommandButton1_Click()
  With Sheets("Tarieflijst").ListObjects(1)
    Set klant = .DataBodyRange.Columns(1).Find(Range("K6"), , xlValues, xlWhole)
    If Not klant Is Nothing Then
      If klant <> "" Then
        Bewerkklant klant.Row
        .ListObjects(1).Range.Sort .ListObjects(1).Range.Cells(1), , , , , , , xlYes
      End If
    End If
  End With
  Range("K6,K7,K9,K12,K15,K17,K21").ClearContents
  MsgBox ("Klant bijgewerkt")
End Sub
 
Het is inmiddels goed gelukt met het bestand.

Inmiddels ben ik ook bezig met een ander bestand waar ongeveer hetzelfde moet gebeuren. Het klant toevoegen, wijzigen en verwijderen is allemaal geen enkel probleem.
Nu is het zo dat als een klant verwijderd wordt er bepaalde kolommen gekopieerd moeten worden naar een ander tabblad met de datum van de dag dat die verwerking gebeurd.
Dus als ik vandaag de klant verwijder, dan moet er achter staan 12-8-2018. Als ik dit morgen doe dan 13-8-2018.

Ik weet niet of dit mogelijk is via het eerste tabblad, of dat dit via een ander tabblad moet. Ik heb nog al een tijdje zitten te rommelen ermee, maar kwam er zelf niet meer uit.
Ik hoop dat jullie mij hier nog mee willen helpen?


Ik kan het bestand helaas niet toevoegen omdat het te groot is (ook als ik deze in een rar bestand doe). Maar het is vergelijkbaar met de bestanden hier op het forum.

Als ik het in de termen hou van de bestanden hier in dit topic, moet je het als volgt zien:
De knop klant verwijderen is vanaf het eerste tabblad. En moet als het gaat om klantnummer 9999, deze opzoeken in de tarieflijst. Hier van de bijbehorende rij: kolom: 1, 3, 6, 7 kopiëren. En deze naar een ander excelblad met verwijderde klanten exporteren. Met erachter de datum waarop deze verwerking is uitgevoerd.
Als dan vervolgens weer een klant wordt verwijderd, moet deze weer onder de vorige klant gezet die was verwijderd.

Na verloop van tijd, haal ik deze rijen zelf weer weg, maar ze mogen dus niet overschreven worden.

Ik hoop dat het zo duidelijk is, in ieder geval hartstikke bedankt al voor de moeite tot dusver!
 
Met Date of Now kan je de huidige datum opvragen. Verder begrijp ik er niet veel van. Waarom maak je geen gebruik van een Userform. Voldoende voorbeelden te vinden hier op de site.
 
Bedankt voor de reactie! Ik wist nog niet van het bestaan ervan af, maar ik ga mij daar even in verdiepen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan