Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Code aanpassen  (gelezen 22915 keer)

0 leden en 1 gast bekijken dit topic.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code aanpassen
« Reactie #30 Gepost op: 15 augustus 2018, 19:18:01 »
AAAARRRGGGHHH nou telt hij weer niet goed op!!! Staat alles op zijn plek telt hij weer niet goed op
Haha, deze verzuchting heb je er nadien nog bijgeplaatst.
Dan toch maar mijn laatste methode ?
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #31 Gepost op: 15 augustus 2018, 19:25:14 »
Nee hoor die draak telt niet meer op nou!!
Kijk maar in het voorbeeldje wat er bij zit :o

de plinten moeten veel meer zijn.

Rustig Tonnie je bent zennnnnnnnnn

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code aanpassen
« Reactie #32 Gepost op: 15 augustus 2018, 20:26:29 »
Ja maar wacht... zen(na kalm)  :D :D :D
Je bent nog bezig met de code die je zelf hebt gewijzigd.

De ene regel code die ik je suggereerde moest worden toegevoegd aan wat ik je eerder had bezorgd.
Hier nog eens de volledige :
Sub JPS_pitufo()
   
Dim a, i As Long, txt As String, w
a = Cells(21, 1).CurrentRegion.Value
laatste = Cells(Rows.Count, 1).End(xlUp).Row
Range("A21:F" & laatste).Clear
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 1 To UBound(a, 1)
    x = Chr(2)
        txt = Join(Array(a(i, 1), a(i, 6)), Chr(2))
        If Not .exists(txt) Then
            .Item(txt) = VBA.Array(a(i, 1), a(i, 6), a(i, 4), a(i, 5))
        Else
            w = .Item(txt): w(2) = w(2) + a(i, 4)
            .Item(txt) = w
        End If
    Next
    a = .items: i = .Count
End With
Range("a21").Resize(i, 4).Value = Application.Index(a, 0, 0)
Range("B21:C" & Cells(Rows.Count, 1).End(xlUp).Row).Insert shift:=xlToRight

End Sub

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

Offline JeanPaul

  • Volledig lid
  • **
  • Berichten: 116
  • Oplossing.be
Re: Code aanpassen
« Reactie #33 Gepost op: 15 augustus 2018, 21:26:40 »
Even aangepast, hoop dat je dit bedoeld

Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #34 Gepost op: 15 augustus 2018, 21:41:17 »
OOhhhh ik denk dat jullie onderhand wel gek van me worden :-\

In het voorbeeld zit alles goed maaaarrrr.

Onder knop JPS zitten de kolommen goed en in de juiste volgorde en juiste plaats.
Onder knop JPS telt hij het juist op maar zitten de kolommen in de verkeerde volgorde.

Uiteindelijk:
Kolom A: Vakman type
Kolom B: Niks
Kolom C: Niks
Kolom D: Aantal
Kolom E: Eenheid
Kolom F: Product

Me vrouw ligt helemaal in een deuk lijkt wel een film zegt ze ;D


Offline JeanPaul

  • Volledig lid
  • **
  • Berichten: 116
  • Oplossing.be
Re: Code aanpassen
« Reactie #35 Gepost op: 15 augustus 2018, 21:55:44 »
Dan wissel je de kolommen gewoon om

Offline JeanPaul

  • Volledig lid
  • **
  • Berichten: 116
  • Oplossing.be
Re: Code aanpassen
« Reactie #36 Gepost op: 15 augustus 2018, 22:10:27 »
Of met 2 lege kolommen er tussen

Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #37 Gepost op: 15 augustus 2018, 22:24:00 »
JeanPaul,

Je bedoelt het goed echt waar maar je bent het verkeerde bestand aan het aanpassen.
Het gaat om het bestand en de uitleg in deze post:


Reactie #34 Gepost op: Vandaag om 21:41:17 »

Daar is de plaats anders geworden etc etc dat hadden we vanmiddag al gedaan.

Beter nog kan je deze code aanpassen zodat hij gewoon optelt verder klopt alles in de code, de kolommen, de plaats alleen hij telt niet op:
Sub JPS()
   
Dim a, i As Long, txt As String, w
a = Cells(21, 1).CurrentRegion.Value
Range("A21:F" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 1 To UBound(a, 1)
    x = Chr(2)
        txt = Join(Array(a(i, 1), a(i, 6)), Chr(2))
        If Not .exists(txt) Then
            .Item(txt) = VBA.Array(a(i, 1), a(i, 2), a(i, 3), a(i, 4), a(i, 5), a(i, 6)) ''aangepast met de kolom B en C toevoegen
        Else
            w = .Item(txt): w(2) = w(2) + a(i, 6)
            .Item(txt) = w
        End If
    Next
    a = .items: i = .Count
End With
Range("a21").Resize(i, 6).Value = Application.Index(a, 0, 0) ''aangepast met 6
Range("B21:C" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
End Sub

Offline JeanPaul

  • Volledig lid
  • **
  • Berichten: 116
  • Oplossing.be
Re: Code aanpassen
« Reactie #38 Gepost op: 15 augustus 2018, 22:50:17 »
zo poging 5

Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #39 Gepost op: 15 augustus 2018, 23:35:40 »
Uiteindelijk moest dit het zijn, zie bijlage:

Allemaal bedankt voor het oplossen van de puzzel en het geduld met mij :-X

Het valt niet mee om via voorbeelden uit te dragen wat de bedoeling is, laat staan tot een bruikbare oplossing te komen.
Top dat jullie de moeite nemen om toch iemand te helpen met een probleem.

Jij ook bedankt Alfa, ondanks dat je bijna ontplofte waren we er bijna.



Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #40 Gepost op: 18 augustus 2018, 00:52:36 »
Sorry maar ik heb toch nog een vraagje aan JeanPaul.

Ik krijg bij een lijst deze foutmelding:

Fout 9 tijdens uitvoering:
Het subscript valt buiten het bereik.

en dan op deze regel van jouw code:

    txt = Join(Array(a(i, 1), a(i, 6)), Chr(2))


Heb jij enig idee waar ik moet zoeken?
zijn de woorden te lang?
klopt de code met het product niet?

Hij doet het goed hoor alleen bij bepaalde tabbladen niet.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Code aanpassen
« Reactie #41 Gepost op: 18 augustus 2018, 09:50:34 »
Hallo,
Ik heet wel niet JeanPaul, maar toch (dit is overigens wat ik je lang geleden voorspeld heb...) :
Vermoedelijk krijg je deze fout als kolommen A tot F niet allemaal waarden bevatten.
In de code die je onlangs zelf als finale oplossing hebt aangegeven staat
a = Cells(21, 1).CurrentRegion.Value als code, en
'a = Range("A21:F" & Range("A" & Rows.Count).End(xlUp).Row) als commentaar
Keer dat eens om. Als de rest van je gegevens in de juiste kolommen staat zie ik niet waarom het verkeerd zou gaan.
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline JeanPaul

  • Volledig lid
  • **
  • Berichten: 116
  • Oplossing.be
Re: Code aanpassen
« Reactie #42 Gepost op: 18 augustus 2018, 10:17:17 »
Ik denk dat u zoek gebied niet groot genoeg is, a(i,6) valt buiten dat bereik, en geeft een fout melding, waarschijnlijk heb je iets veranderd in je bestand, en de code niet aangepast.

Offline tonnie

  • Volledig lid
  • **
  • Berichten: 104
  • Geslacht: Man
  • Oplossing.be
Re: Code aanpassen
« Reactie #43 Gepost op: 18 augustus 2018, 11:17:12 »
Het zoekgebied is wat kleiner geworden,

ik heb drie bladen waar een lijst uit komt voor ik de code er over heen laat gaan. Een voor de badkamer een voor het toilet en een voor overige.

Die van het toilet en overige doet het gewoon met alles, maar als ik de lijst haal uit de badkamer haal krijg ik een fout. sterker nog als ik ook maar een of twee producten uit de badkamer haal gaat het niet goed.

Het zijn drie bijna identieke bladen met alleen wat andere aantallen en teksten. Ik denk dat ik er wel van uit kan gaan dat de code goed werkt, want bij overige en toilet werken alle producten.

Zou het dan toch in het bereik zijn wat JeanPaul zegt?

Ik heb de lijst waar hij de fout geeft in het bestand geplakt en zie hier! (voorbeeld)

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.275
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Code aanpassen
« Reactie #44 Gepost op: 18 augustus 2018, 12:13:17 »
Heeft die sheet wel 6 aaneengesloten kolommen? Wat is de waarde van i als de code vastloopt?
______________________________

Groet, Leo

 


www.combell.com