Ga naar inhoud

Ophalen gegevens uit ander Excelbestand met specifieke criteria


TorqueR11
 Delen

Aanbevolen berichten

Hallo,

 

Ik zit met een voor mij moeilijke probleem. Ik heb enigszins wat verstand van formules e.d. (lang leve google), maar wat ik nu graag wil gaat men pet te boven. Hopelijk kunnen jullie mij helpen.

Ik wil graag uit meerdere tabbladen tekst kopieeren en importeren in een excelbestand. Maar gematcht met een criterium. Ik zal wat voorbeelden geven van wat ik wil.

 

Uitleg rapportage ZZPPO

Dit is de lijst waar ik de gegevens in wil hebben. Ik wil het onderstaande uit de PO rapportage krijgen, maar dan per Code/installatie (bijv. 502-PU-042).

- Onderhoud uitgevoerd/werk gereed(j/n)

- Oplossingstekst/opmerkingen

 

Deze ZZPPO lijst wordt uit het ERP systeem gegenereerd per week voor de desbetreffende te onderhouden Codes/installaties om de lijst in te vullen. De Codes/installaties zijn onder elkaar opgesomd in een specifiek, niet te veranderen format om in te lezen in ons ERP systeem.

 

Uitleg rapportage PO

Dit is een rapportage die op een tabblad staat waar ik de gegevens uit wil halen. Deze wordt ingevuld in Excel door onze monteur op locatie.

- In cel D tot G staat aangegeven of het werk is uitgevoerd. Dit moet in een J resulteren in het voorbeeld ZZPPO achter Onderhoud uitgevoerd

- In de rijen onder Kolom H tot K staan alle opmerkingen die achter elkaar opgesomd moeten worden, gescheiden met een # in het ZZPPO bestand onder oplossingstekst, met het te controleren onderdeel uit cel C uit de zelfde rij.

 

Het halen van gegevens van een Code en plaatsen in het ZZPPO kan ook met formules gedaan worden voor één tabblad en één oplossingstekst met een specifieke Code.

 

Maar nu komt het moeilijke.

Ik wil graag een macro hebben, die zelf de Codes uit het ZZPPO bestand matcht en daarna de bovenstaande gegevens invult in het ZZPPO bestand per Code.

Iedere week is er een nieuw PO rapportage en ZZPPO rapportage bestand voor de betreffende Codes en gebouw. De Macro dient dus gekopieerd en geplakt te kunnen worden in het nieuwe ZZPPO rapportage bestand. Daarna zou, zonder iets te hoeven aanpassen, met het kiezen van de juiste PO rapportage alles ingevuld moeten worden.

 

Aan jullie dus de vraag, Is dit mogelijk? en zo ja, waar moet ik beginnen, of kan iemand mij helpen?

Alvast bedankt!

 

Met vriendelijke groet,

 

Rick Willems

 

Bijgevoegd:

- Rapportage ZZPPO (ZZ-PPO Rap BPO week 6 tbv macro.xlsx)

- Rapportage PO (Onderhoudsrapportage BPO tbv macro.xlsx)

- het Excel bestand met macro's waar ik van dacht dat ze al een soort gelijke link hebben, maar dan in één excel bestand tussen tabbladen. Dit is tevens het Excel bestand om de ZZPPO lijst in te lezen in ons ERP systeem. (PPO-lijst automatisch inlezen MACRO.xlsm)

 

PPO-lijst automatisch inlezen MACRO.xlsm

Onderhoudsrapportage BPO tbv macro.xlsx

ZZ-PPO Rap BPO week 6 tbv macro.xlsx

Link naar reactie
Delen op andere sites


 Delen

  • Welkom op PC Helpforum

  • Leden statistieken

    • Aantal leden
      40.282
    • Meeste online
      1.765

    Nieuwste lid
    netsmywifiext
    Registratiedatum
  • Gerelateerde inhoud

    • Door bickyvp
      hallo iedereen,
       
      ik ben bezig voor mijn wergever met een excel van al onze stockproducten en om zo eenvoudig te kunnen zien wat er besteld moet worden.
      dit heb ik reeds gedaan.
       
      nu wil ik dat ik snel kan sorteren op wat er besteld moet worden.  het vak waarin staat dat er besteld moet worden is dmv vba.
      de celgrote is niet overal gelijk omdat dat niet anders kan of niet goed uitkomt.
       
      natuurlijk moet heel de rij juist mee volgen met het sorteren. ik krijg mijn werkbladen maar niet gesorteerd.
      waarbij ik meteen kan zien wat er moet besteld worden.
       
      kan iemand mij hierbij helpen of op weg zetten ?
      (ps: in bijlage vind je de excel, enkel de 3 eerste werkbladen wil ik zo gesorteerd hebben)
       
      alvast heel erg bedankt
      groeten michael
      magazijn vp.xlsm
    • Door t&d
      De code werkte eerst maar nu niet meer?
      Ik denk dat het tussen regel 6 en 19 zit maar ben niet zeker.

      Foutopsporing leid naar commandobutton, maar code is enkel om formulier te open
      Private Sub cmdopen_2_Click() Userform1.Show End Sub  
      Option Explicit Dim blnNew As Boolean Dim Dic As Object, i As Long Private Sub UserForm_Initialize() cmdSave.Enabled = False Frame2.Enabled = False Dim sv, i As Long sv = Sheets(1).Cells(1).CurrentRegion Set Dic = CreateObject("scripting.dictionary") For i = 1 To UBound(sv) If Not Dic.exists(sv(i, 1)) Then Dic.Item(sv(i, 1)) = Array(sv(i, 1), CreateObject("scripting.dictionary"), CreateObject("scripting.dictionary")) Dic(sv(i, 1))(1).Item(sv(i, 2)) = Dic(sv(i, 1))(1).Item(sv(i, 2)) Dic(sv(i, 1))(2).Item(sv(i, 2)) = Array(sv(i, 2), Application.Index(sv, i, Array(1, 3, 6, 7, 10, 11)), i) Next i ComboBox2.List = Dic.keys Dim wb As Workbook: Set wb = ThisWorkbook Dim WS As Worksheet Dim LastRow As Long Dim aCell As Range Set WS = wb.Sheets("Type data") With WS LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row For Each aCell In .Range("C1:C" & LastRow) If aCell.Value <> "" Then Me.TextBox2.AddItem aCell.Value End If Next End With Set WS = wb.Sheets("Type data") With WS LastRow = .Cells(.Rows.Count, "O").End(xlUp).Row For Each aCell In .Range("O1:O" & LastRow) If aCell.Value <> "" Then Me.TextBox5.AddItem aCell.Value End If Next End With End Sub Private Sub cmdClose_Click() If cmdClose.Caption = "Close" Then Unload Me Else cmdClose.Caption = "Close" cmdNew.Enabled = True End If End Sub Private Sub cmdNew_Click() blnNew = True txtklant.Text = "" txttype.Text = "" txtdossier.Text = "" txtdatum.Text = "" txtbestand.Text = "" txtbestemming.Text = "" cmdClose.Caption = "Cancel" cmdNew.Enabled = False cmdSave.Enabled = True Frame2.Enabled = True End Sub Private Sub cmdSave_Click() If Trim(txtklant.Text) = "" Then MsgBox "Enter klant", vbCritical, "Save" txtklant.SetFocus Exit Sub End If Call prSave cmdClose.Caption = "Close" cmdNew.Enabled = True ThisWorkbook.Save End Sub Private Sub prSave() ''''' Save the dms If blnNew = True Then TRows = Worksheets("dms").Range("A1").CurrentRegion.Rows.Count With Worksheets("dms").Range("A1") .Offset(TRows, 0).Value = txtklant.Text .Offset(TRows, 1).Value = txttype.Text .Offset(TRows, 2).Value = txtdossier.Text .Offset(TRows, 3).Value = txtdatum.Text .Offset(TRows, 4).Value = txtbestand.Text .Offset(TRows, 11).Value = txtbestemming.Text End With txtklant.Text = "" txttype.Text = "" txtdossier.Text = "" txtdatum.Text = "" txtbestand.Text = "" txtbestemming.Text = "" Call prComboBoxFill Else For i = 2 To TRows If Trim(Worksheets("dms").Cells(i, 1).Value) = Trim(ComboBox3.Text) Then Worksheets("dms").Cells(i, 1).Value = txtklant.Text Worksheets("dms").Cells(i, 2).Value = txttype.Text Worksheets("dms").Cells(i, 3).Value = txtdossier.Text Worksheets("dms").Cells(i, 4).Value = txtdatum.Text Worksheets("dms").Cells(i, 5).Value = txtbestand.Text Worksheets("dms").Cells(i, 13).Value = txtbestemming.Text txtklant.Text = "" txttype.Text = "" txtdossier.Text = "" txtdatum.Text = "" txtbestand.Text = "" txtbestemming.Text = "" Exit For End If Next i End If blnNew = False If Trim(txtklant.Text) = "" Then cmdSave.Enabled = False Frame2.Enabled = False Else cmdSave.Enabled = True Frame2.Enabled = True End If End Sub Private Sub cmdSearch_Click() Userform1.Show End Sub Private Sub ComboBox2_Change() hsv ComboBox3.List = Dic(ComboBox2.Value)(1).keys ComboBox3.ListIndex = -1 End Sub Private Sub ComboBox3_Change() If ComboBox3.ListIndex > -1 Then For i = 1 To 6 Controls("Textbox" & i).Value = Dic(ComboBox2.Value)(2)(ComboBox3.Value)(1)(i) Next i End If End Sub Private Sub hsv() ComboBox3.ListIndex = -1 For i = 1 To 6 Me.Controls("TextBox" & i).Value = "" Next i End Sub Private Sub Image1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer) End Sub Private Sub Image2_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer) End Sub  
      test_DMS.xlsm
    • Door K5
      Hier ben ik terug!
      Mijn vorige vraag was om een Macro aan te maken om te printen.
      Ik heb dat excel bestand dus willen overmaken aan die dame, maar ondertussen heeft zij er nog enkele kolommen bij aangemaakt.
      Daarop heb ik haar uitgelegd dat er een knop was voorzien om enkel de kolom met de namen van de leden en de kolom met hun geboortemaand uit te printen.
      Waarop zij fijntjes vroeg of het ook mogelijk was om bij het sorteren via de geboortemaand, iedereen te sorteren volgens "geboortemaand" maar dan ook volgens "geboortedag".
      Het geboortejaar speelt niet direct een rol.
      Zij stuurt namelijk naar alle leden op hun verjaardag een berichtje of een kaartje. Zo kan zij dit beter opvolgen.
    • Door jord
      Beste alle,
      Ik wil graag jullie hulp inschakelen, om onderstaand vba beter te maken. D e bedoeling is dat gegevens van de factuur op een volgend blad geboekt worden. De vba werkt maar niet naar wens. Misschien dat jullie tips hebben.
       
      Sub Knop35_Klikken()
              Dim Datum, factnr, Relatie As String
              Dim totaal As Double
              Datum = Range("O19").Value
              factnr = Range("O20").Value
              Relatie = Range("O21").Value
           
           If Relatie = "" Then
                  MsgBox "Er is geen relatie geselecteerd."
                  Exit Sub
              End If
              If Datum = "" Then
                  MsgBox "Er is geen datum ingevuld."
                  Exit Sub
              End If
              If factnr = "" Then
                  MsgBox "Er is geen factuurnumer ingevuld."
                  Exit Sub
              End If
              With Worksheets("Verkoop").Range("C7:C10000")
                   Set factnr = .Find(Range("O20").Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
                   If Not factnr Is Nothing Then
                      MsgBox "Er is al een factuur met dit nummer aanwezig!"
                      Exit Sub
                    End If
              
      If IsEmpty(Sheets("verkoopfactuur").Range("O20")) Then
      MsgBox "factuurnummer niet ingevuld", vbCritical, "Factuurnummer"
      Exit Sub
      End If
          Dim ws1 As Worksheet, ws2 As Worksheet
          Set ws1 = Sheets("Verkoopfactuur")
          Set ws2 = Sheets("Verkoop")
          DestRow = ws2.Cells(Rows.Count, "A").End(xlUp).Row + 1
          
          ws1.Range("O34:R34").Copy
          ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
          ws1.Range("T34").Copy
          ws2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 5).PasteSpecial xlPasteValues
          
          ws1.Range("V34").Copy
          ws2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 7).PasteSpecial xlPasteValues
          
          ws1.Range("X34").Copy
          ws2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 9).PasteSpecial xlPasteValues
          
          ws1.Range("AA34:AC34").Copy
          ws2.Cells(Rows.Count, 1).End(xlUp).Offset(0, 12).PasteSpecial xlPasteValues
      End With
      End Sub
       
      Gr. Jord
    • Door alidus
      Heb een VBA macro gemaakt om in een bepaalde rij van een worksheet, een aantal cellen te “deleten” (Excel 2016)
       
      De te kiezen rij wordt via een aangemaakte module in een andere worksheet aangesproken.
       
      Heb nu een probleem, dat er wel cellen in de bepaalde worksheet worden “ge-delete” , maar de rij nummer is niet goed gekozen.
      Ik heb de indruk dat de rijnummer gekozen wordt in de sheet waar de module wordt opgeroepen.
       
      Ik heb geen enkele ervaring met VBA, maar heb hier en daar wat gezocht op het internet en ben tot de volgende macro gekomen. Hetgeen wel enigszins werkt maar het probleem blijft houden, zoals hierboven uitgelegd.
       
      Graag een advies hoe ik e.e.a. zou kunnen aanpassen, zodat de bepaalde cellen wel op de juiste rij worden “ge-delete”
       
      HD Alidus
       
       
       
       
      Private Sub Annulering_Click()
       
      ‘ aangeven zoekactie in worksheet
       
      Dim ws As Worksheet
      Set ws = Worksheets("Inschrijving")
       
      ‘ rijnummer vinden om de actie uit te voeren
       
      Dim TeZoekenWaarde
      Dim c As Range
      Dim TeZoekenWaarde
      TeZoekenWaarde = Me.flightnummer.Value
      Set c = Range("A1:A1000").Find(TeZoekenWaarde)
       
      ' Delete gegevens
       
      ws.Cells(c.Row, 1).Value = ""
      ws.Cells(c.Row, 2).Value = ""
      ws.Cells(c.Row, 3).Value = ""
      ws.Cells(c.Row, 4).Value = ""
      ws.Cells(c.Row, 5).Value = ""
      ws.Cells(c.Row, 6).Value = ""
      ws.Cells(c.Row, 7).Value = ""
      ws.Cells(c.Row, 8).Value = ""
       
      MsgBox "Inschrijving geannuleerd!"
       
      Me.flightnummer.Value = ""
       
      Me.flightnummer.SetFocus
       
      End Sub
       
       
      Private Sub Sluiten_Click()
      Unload Me
      End Sub
×
×
  • Nieuwe aanmaken...