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

Meerdere kolommen met elkaar vergelijken

  • Onderwerp starter Onderwerp starter RChr
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

RChr

Gebruiker
Lid geworden
21 nov 2018
Berichten
6
Beste,

Ik heb een bestand waaruit ik onder andere wil zien of er in een bepaalde maand een project gefactureerd is aan de klant d.m.v. een formule.
Wat ik graag wil:
Dat vanuit het tabblad facturatie de kolommen 'C', 'D' en de maanden I:T worden vergeleken met de kolommen van het tabblad verkoopregister: C, D, E)
Als er bijvoorbeeld volgens het verkoopregister aan debiteur 1, project 1 is gefactureerd in januari wil ik dat er in blad facturatie cel I5 een 2 staat (zodat er een vinkje staat). Als er niet gefactureerd is moet er een 0 komen te staan.

Alvast bedankt!

Groet,
Ruud
 

Bijlagen

Zo?
Code:
=ALS(SOMPRODUCT((Register_verkoopfacturen[Debiteur]=[@Debiteur])*(Register_verkoopfacturen[Project]=[@Project])*(MAAND(Register_verkoopfacturen[Periode])=KOLOM()-8));2;0)
 

Bijlagen

Waarom heb je twee queries naar dezelfde gegevens in het bestand staan ?
Waarom laat je de koppeling niet bijwerken bij het openen van het bestand ?
Vermijd iedere 'Select' of 'Activate' in VBA.
 
En weer bedankt!

@snb wat bedoel je precies?
Dit is een deel van het originele bestand. Het origineel heeft nog 2 extra tabbladen met facturatie/register van een andere onderneming, ik gebruik één macro per per onderneming (linkt naar apparte bestanden)
 
Zo zou ik het doen:

Code:
Sub M_snb()
  sn = Blad5.Cells(4, 1).CurrentRegion
  With Blad3.Cells(5, 3).CurrentRegion
    sp = .Offset(, 1 - .Columns(1).Column).Resize(, 20)
    
    For j = 2 To UBound(sn)
      For jj = 2 To UBound(sp)
        If sn(j, 3) & sn(j, 5) = sp(jj, 3) & sp(jj, 4) Then Exit For
      Next
      If jj <= UBound(sp) Then sp(jj, 8 + Month(sn(j, 4))) = 2
    Next
    
    .Offset(, 1 - .Columns(1).Column).Resize(, 20) = sp
  End With
End Sub
 
Laatst bewerkt:
Ik loop nu tegen het volgende aan:
Als ik de formule toepas op mijn bestand geeft hij na opslaan en opnieuw openen een foutmelding:
'Er zijn problemen aangetroffen met bepaalde inhoud in facturatiebestand.xlsx. Wilt u de inhoud zo ver mogelijk herstellen? Klik op Ja als u de bron van de werkmap vertrouwt.'

error051640_01.xml

Verwijderde records: Formule van het onderdeel /xl/worksheets/sheet2.xml
Verwijderde records: Formule van het onderdeel /xl/calcChain.xml (Berekeningseigenschappen)

Hierdoor gooit het bestand de formule eruit. Als ik het bestand open zonder de formule in te voeren kan ik deze wel gewoon openen.

Iemand een oplossing?

Groet,

Ruud
 
Gebruik geen formule maar de code uit #6
 
Bedankt!
Hij werkt echter alleen voor het blok 'Current Business' en dus niet voor de blokken 'Current Business IC' en 'New Business'
Zou je dit nog kunnen oplossen?
Ik zou het graag zelf oplossen maar ik snap niet veel van de code (en VBA).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan