Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Wie wil er met mij eens meedenken?  (gelezen 27088 keer)

0 leden en 1 gast bekijken dit topic.

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Wie wil er met mij eens meedenken?
« Gepost op: 01 november 2019, 16:33:38 »
Als er een x staat in kolom G moeten de regels van Tabblad resultaten en resultaten 2 naar het tabblad JAP2020.
Hoe kunnen we dat in één macro gieten en rekening houden met de opmerkingen behalve de laatste opmerking, ik moet nog uitdokteren wat daarmee wordt bedoeld.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Wie wil er met mij eens meedenken?
« Reactie #1 Gepost op: 01 november 2019, 17:12:11 »
Hey Ex-lid,

Ben je hier nu een oplossing aan het zoeken voor een probleem dat je zelf voor iemand anders probeert op te lossen? In elk geval tref ik hier een structuur aan die niet van jouw hand lijkt te zijn...

Een paar zaken zie ik toch al meteen:  als je in beide werkbladen "Resultaat..." kolom D en in werkblad "JAP 2020" kolom A als tekst definieert heb je al een probleem minder.
Er staan 2 macro's die duidelijk de ene na de andere en in vaste volgorde moeten uitgevoerd worden. Dan kan je beide codes toch gewoon onder elkaar plakken (?) en nog enkele lijntjes weglaten.

Al een beetje opgeschoond (met de nadruk op 'een beetje'):
Private Sub Cmd1_Click()

Set R1 = Sheets("Resultaten")
Set R2 = Sheets("Resultaten (2)")
Set J20 = Sheets("JAP 2020")
   
lrR1 = R1.Cells(R1.Cells.Rows.Count, 4).End(xlUp).Row
For i = 9 To lrR1
    lrJ20 = J20.Cells(J20.Cells.Rows.Count, 1).End(xlUp).Row + 1
    If R1.Range("G" & i).Value = "x" Or R1.Range("G" & i).Value = "X" Then
        J20.Range("A" & lrJ20).Value = R1.Range("D" & i).Value
        J20.Range("B" & lrJ20).Value = R1.Range("E" & i).Value
    End If
Next i
   
lrR2 = R2.Cells(R2.Cells.Rows.Count, 4).End(xlUp).Row
For i = 9 To lrR2
    lrJ20 = J20.Cells(J20.Cells.Rows.Count, 1).End(xlUp).Row + 1
    If R2.Range("G" & i).Value = "x" Or R2.Range("G" & i).Value = "X" Then
        J20.Range("A" & lrJ20).Value = R2.Range("D" & i).Value
        J20.Range("B" & lrJ20).Value = R2.Range("E" & i).Value
    End If
Next i

J20.UsedRange.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes

End Sub

Blijft nog enkel de 'ontbrekende onderwerpen' denk ik dan. Maar nu even geen tijd meer, dus ik kom er later wel op terug. Laat je het wel weten mocht je die ondertussen zelf goed hebben gekregen?

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Wie wil er met mij eens meedenken?
« Reactie #2 Gepost op: 01 november 2019, 22:10:03 »
Hey hey, vlugger terug dan gedacht, en nog even ter hand genomen.

Eerst dacht ik voor de 'groepstitels' vooraf te checken of ze moesten meegenomen worden maar dat ging redelijk veel extra codeerwerk geven.
De meer pragmatische oplossing is geworden: we vragen het ons gewoon niet af en nemen ze allemaal mee. En als alles klaar is kieperen we de overbodige weer overboord op basis van wat we al hebben.
Oei, volg je nog? 't Zal wel duidelijk worden als je de code (in stukken) uitvoert, of meteen al bij het lezen ervan  :)

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: Wie wil er met mij eens meedenken?
« Reactie #3 Gepost op: 02 november 2019, 09:22:31 »
Hoi,
Dit is idd voor een kennis van mij, maar ik had die vraag gepost omdat ik hoopte van een paar Excel cracks (jij pitufo,emields haije redhead...) een paar verschillende benaderingen zou zien. Gezien ik van nog van de Fortran generatie ben moet ik nu en dan een paar nieuwe ideeën opdoen.
Mooi stukje code pitufo en dank voor het meedenken :thumbsup:

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Wie wil er met mij eens meedenken?
« Reactie #4 Gepost op: 02 november 2019, 09:33:22 »
Héél graag gedaan!
Je hebt er trouwens zelf ook nog werk aan: die kennis van jou wat basisbegrippen voor de opbouw van een worksheet aanleren bijvoorbeeld  :D
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

 


www.combell.com