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

Bepaalde waarde ingeven en weergeven excel

Status
Niet open voor verdere reacties.

ivoexcel

Gebruiker
Lid geworden
23 nov 2018
Berichten
100
Goedendag,

Ik heb een bestand met 1 overzicht blad en 4 bladen met data. In dit overzichtsblad heb ik een knop als je daarop klikt komt er een inputbox waarna je een filiaalnummer in kunt vullen. Deze waardes moet hij gaan zoeken in de 4 bladen en alles weergeven wat betrekking hierop heeft.

Ik heb al een stukje code maar deze heeft de volgende 2 problemen:
- Als er een filiaalnummer wordt ingevuld die niet (of niet op alle bladen) voorkomt komt er een storing (deze nummers kunnen: op alle bladen staan maar dat hoeft zeker niet
- Bij het zoeken naar de waarde stopt hij bij de eerste die hij vind terwijl het best kan zijn dat deze vaker voorkomt (ook dit hoeft niet zo te zijn)

HTML:
Sub overzetten_basis()

'pop-up scherm verschijnt
fil = InputBox("wat is het filiaalnummer? ")

'Kijkt of er iets wordt ingevuld
If fil <> "" Then

'Bestand wordt leeg gemaakt
Dim lr1 As Integer, p As Integer, y As Integer
With Sheets("Periode overzicht").Columns("a:i")
.Font.FontStyle = "Standaard"
.ClearContents
End With
 
'Zoekt de juiste waarde op
Set c = Sheets("In- en uitkluisboekingen").Range("A:A").SpecialCells(2).Find(fil, lookat:=xlWhole, searchorder:=xlByRows)
Set c1 = Sheets("Negatieve kassabonnen").Range("A:A").SpecialCells(2).Find(fil, lookat:=xlWhole, searchorder:=xlByRows)
Set c2 = Sheets("Cadeau en waardebonnen").Range("A:A").SpecialCells(2).Find(fil, lookat:=xlWhole, searchorder:=xlByRows)
Set c3 = Sheets("Groepsaanslagen > 30 euro").Range("A:A").SpecialCells(2).Find(fil, lookat:=xlWhole, searchorder:=xlByRows)
Set c4 = Sheets("Demo, proeverijen of klant co").Range("A:A").SpecialCells(2).Find(fil, lookat:=xlWhole, searchorder:=xlByRows)

'Plaatst de waarde in het overzicht
With Sheets("Periode overzicht")
.Cells(1, 1).Resize(1, 9).Value = c.Resize(1, 9).Value
.Cells(5, 1).Resize(1, 9).Value = c1.Resize(1, 9).Value
.Cells(10, 1).Resize(1, 9).Value = c2.Resize(1, 9).Value
.Cells(15, 1).Resize(1, 9).Value = c3.Resize(1, 9).Value
.Cells(20, 1).Resize(1, 9).Value = c3.Resize(1, 9).Value

End With

End If

End Sub


Ik hoop dat iemand mij kan helpen. Als het bestand nodig is hoor ik het natuurlijk graag!

Groet Ivo
 
Laatst bewerkt:
een voorbeeld bestand is altijd handig als je tot een oplossing wil komen
 
Een .xlsx bestand bevat geen code.
Ook mis ik een aantal bladen.

Verkeerd bestand toegevoegd?
 
Een .xlsx bestand bevat geen code.
Ook mis ik een aantal bladen.

Verkeerd bestand toegevoegd?

ja inderdaad... Excuses niet meer zo scherp op vrijdagmiddag.... Nu zit het juiste bestand erbij!
 
Code:
Option Explicit
Sub hsv()
Dim sh As Worksheet, Po As Worksheet, fil
Set Po = Sheets("periode overzicht")
fil = InputBox("wat is het filiaalnummer? ")
  If fil <> "" Then
  Po.Cells(1).CurrentRegion.Clear
   For Each sh In Sheets
    If sh.Name <> Po.Name Then
     With sh.Cells(1).CurrentRegion
      .AutoFilter 1, fil
      .Offset(1).Copy Po.Cells(IIf(Po.Cells(1) = "", 1, Po.Cells(Rows.Count, 1).End(xlUp).Row + 1), 1)
      .AutoFilter
     End With
    End If
    Next sh
   End If
End Sub
 
Code:
Option Explicit
Sub hsv()
Dim sh As Worksheet, Po As Worksheet, fil
Set Po = Sheets("periode overzicht")
fil = InputBox("wat is het filiaalnummer? ")
  If fil <> "" Then
  Po.Cells(1).CurrentRegion.Clear
   For Each sh In Sheets
    If sh.Name <> Po.Name Then
     With sh.Cells(1).CurrentRegion
      .AutoFilter 1, fil
      .Offset(1).Copy Po.Cells(IIf(Po.Cells(1) = "", 1, Po.Cells(Rows.Count, 1).End(xlUp).Row + 1), 1)
      .AutoFilter
     End With
    End If
    Next sh
   End If
End Sub

Waar moet ik deze nu plaatsen in mijn macro?
 
In plaats van.
 
*knip*
Top heel erg bedankt! Nog een vraagje ter toevoeging is het nu ook mogelijk dat ik boven het overzicht de naam plaats van het tabblad waar het uitkomt? Zodat het ook duidelijk is welke gegeven je ziet.

Daarnaast heb ik nog een topic open staan over dit document misschien dat u dit ook wel weet?
https://www.helpmij.nl/forum/showthread.php/943044-Importeren-excel-sheets


Alvast bedankt hiermee!
 
Laatst bewerkt door een moderator:
Code:
Sub hsv()
Dim sh As Worksheet, Po As Worksheet, fil, firstrow, tel
Set Po = Sheets("periode overzicht")
fil = InputBox("wat is het filiaalnummer? ")
  If fil <> "" Then
  Po.UsedRange.Clear
   For Each sh In Sheets
    If sh.Name <> Po.Name Then
     With sh.Cells(1).CurrentRegion
        .AutoFilter 1, fil
        firstrow = IIf(Po.Cells(1) = "", 1, Po.Cells(Rows.Count, 1).End(xlUp).Row + 1)
        .Offset(1).Copy Po.Cells(firstrow, 1)
        tel = .SpecialCells(12).Count / .Columns.Count
        If tel > 1 Then Po.Cells(firstrow, 1).Offset(, 8).Resize(tel - 1) = sh.Name
       .AutoFilter
     End With
    End If
   Next sh
 End If
End Sub
 
Laatst bewerkt:
Hoi Harry,

De bladnamen verschijnen nu nog niet boven de waardes die hij ophaalt ?

Groet Ivo
 
Ivo, staan ze er achter?
 
Ivo, staan ze er achter?

Ja inderdaad nu zie ik zet. Hij zet nu ''Blad+nr'' in rij B. Is het ook mogelijk dat de naam die ik het tabblad geef verschijnt in rij 1 bijvoorbeeld daaronder de opgehaalde waardes en dat met elk tabblad?
 
Ivo, er is geen rij B in Excel, .....ze staan in kolom I.

Plaats een bestand met hoe het moet worden, dit schiet niet op zo.
 
Voorbeeld

Dit is hoe de ideale output eruit zou moeten zien.
 
Laatst bewerkt:
Code:
Sub hsv()
Dim sh As Worksheet, Po As Worksheet, fil
Set Po = Sheets("periode overzicht")
fil = InputBox("wat is het filiaalnummer? ")
  If fil <> "" Then
  Po.UsedRange.Clear
   For Each sh In Sheets
    If sh.Name <> Po.Name Then
     With sh.Cells(1).CurrentRegion
        .AutoFilter 1, fil
        If .SpecialCells(12).Count / .Columns.Count > 1 Then .Copy Po.Cells(IIf(Po.Cells(1) = "", 1, Po.Cells(Rows.Count, 1).End(xlUp).Row + 2), 1)
        .AutoFilter
     End With
    End If
   Next sh
 End If
End Sub
 
Uit privébericht.
ivoexcel zei:
Beste Hary,

Heel erg bedankt voor de hulp ik ben er heel blij mee! ga er zelf nog even aan verder knutselen maar dat moet wel lukken.

Ik ben nog jong en druk bezig mijn excel kennis te vergroten, dit gaat me zeker helpen.

Enorm bedankt!

Toevallig privéberichten vanmorgen weer geactiveerd daar ik een vraag heb aan iemand anders.

Overigens graag gedaan, maar beter is dit te melden in de vraag zodat andere zoekenden kunnen zien of een vraag is opgelost.
Die kijken enkel of een vraag is opgelost met goede reacties.
 
Detail

Ik nog 2 vragen naar aanleiding van bovenstaande.

Hoe kan ik nu de zoekkolom aanpassen?
Bijvoorbeeld: nu zoekt hij in A naar de waarste, stel ik wil zoeken in B? Wanneer ik van ''.Autofilter 1'' ''.Autofilter 2'' maak zou hij toch in B naar de waarde moeten gaan zoeken?


Wanneer ik nu een nieuwtabblad aanmaak gaat hij daar ook zoeken naar de ingegeven waarde en wordt er een filter in dat tabblad geplaats. Hoe kan ik een tabblad uitsluiten van het zoeken?

Alvast bedankt!
 
Het uitsluiten van een tab staat hier toch al?
Code:
If sh.Name <> Po.Name Then
Wat de meest logische code wordt is geheel afhankelijk van hoe het bestand er daadwerkelijk uitziet.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan