*

Help!

Problemen met uw pc? De vrijwilligers van oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Recent

Auteur Topic: For next loop vraagje...  (gelezen 2271 keer)

Offline pa3ewc

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Oplossing.be
For next loop vraagje...
« Gepost op: 19 februari 2018, 09:54:57 »
Heb in kolom A van werkblad "Customer" mijn gegevens ingevuld die ik wil hebben. In de kolommen B,C staat de data vermeld.
(er kunnen meerdere kolommen bijkomen aankomend weken)
Deze gegevens van beide kolommen B + C worden automatisch overgenomen in het werkblad "Updates".
Nu zorgt een macro ervoor dat deze gegevens in werkblad "Updates" via een email verstuurd kunnen worden. Dit heb ik zover werkend gekregen. !

Nu heb ik een macro die ik gevonden heb op het forum wat aangepast om ervoor te zorgen dat ik ook de gegevens van werkblad "Updates"
kan wegschrijven (horizontaal) in werkblad "Timeupdates".
Dit werkt voor kolom B + C van werkblad "Updates".!

Het enige wat er gebeurd is dat de gegevens van kolom B overschreven worden door kolom C.! Dat mag niet gebeuren.  :-\
(zie bijgevoegde macro) Graag aanpassen dat dit overschrijven niet meer gedaan wordt maar dat het onder elkaar komt te staan.

Waar zoek ik nu een oplossing voor zoek zijn de volgende puntjes. Hopelijk is er een forumlid die mij op weg kan helpen:  :help:

1. Kolom B en kolom C van werkblad "Updates" moeten in werkblad "Timeupdates" altijd onder elkaar geschreven worden.
    Dus iedere kolom apart op een lijn onder elkaar.

2. Graag de volgorde van wegschrijven op werkblad "Timeupdates" MOET altijd afhankelijk van de Cell A1 (datum en tijd) op het
    werkblad "Updates". Dus de laatste update qua datum en tijd van deze Cell 1 moet altijd op de eerste regel staan.
    (Dus zeg maar aflopend op datum en tijd.)

3. Misschien een betere manier om kolommen die in de toekomst bijgemaakt worden op werkblad "Customer" simpeler te laten uitvoeren in  de macro hierbij gevoegd. Dus dat ik niet elke kolom met de desbetreffende cellen telkens hoef bij te voegen in een loop zoals ik hieronder in deze macro telkens probeer te doen. Tenminste als deze loop werkend gemaakt kan worden want nu doet hij het niet !  :-\

Bedankt voor jullie hulp.

Sub Updateoverzicht()

Dim i As Integer
Dim c As Range

With Sheets("Timeupdates")

Set c = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)

    End With

With Sheets("Updates")

For i = 1 To 31  'Loops 31 times. Change the 5 to match the number of your cells to copy

                  c.Offset(, i - 1).Value = .Range(Choose(i, "A1", "B2", "B5", "B6", "B3", "B8", "B7", "B9", "B10", "B12", "B11", "B13", "B14", "B15", "B16", "B17", "B18", "B19", "B20", "B21", "B22", "B24", "B23", "B32", "B31", "B30", "B29", "B28", "B27", "B26", "B25")).Value _
                 
    Next i


With Sheets("Updates")

'Set c = .Cells(.Rows.Count, 1).End(x1Up).Offset(1)

For i = 1 To 31  'Loops 31 times. Change the 5 to match the number of your cells to copy

                   c.Offset(, i - 1).Value = .Range(Choose(i, "A1", "C2", "C5", "C6", "C3", "C8", "C7", "C9", "C10", "C12", "C11", "C13", "C14", "C15", "C16", "C17", "C18", "C19", "C20", "C21", "C22", "C24", "C23", "C32", "C31", "C30", "C29", "C28", "C27", "C26", "C25")).Value _


    Next i


   End With
End With

End Sub
« Laatst bewerkt op: 19 februari 2018, 10:13:10 door pa3ewc »

Offline Dotchiejack

  • Lid
  • *
  • Berichten: 77
  • Geslacht: Man
  • Oplossing.be
Re: For next loop vraagje...
« Reactie #1 Gepost op: 19 februari 2018, 11:07:26 »
Bedoel je zoiets?
Sub Updateoverzicht()
With Sheets("Timeupdates")
    Set c = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
    Set c1 = .Cells(.Rows.Count, 1).End(xlUp).Offset(2)
End With
With Sheets("Updates")
    For i = 1 To 31
        c.Offset(, i - 1).Value = .Range(Choose(i, "A1", "B2", "B5", "B6", "B3", "B8", "B7", "B9", "B10", "B12", "B11", "B13", "B14", _
        "B15", "B16", "B17", "B18", "B19", "B20", "B21", "B22", "B24", "B23", "B32", "B31", "B30", "B29", "B28", "B27", "B26", "B25")).Value
        c1.Offset(, i - 1).Value = .Range(Choose(i, "A1", "C2", "C5", "C6", "C3", "C8", "C7", "C9", "C10", "C12", "C11", "C13", "C14", _
        "C15", "C16", "C17", "C18", "C19", "C20", "C21", "C22", "C24", "C23", "C32", "C31", "C30", "C29", "C28", "C27", "C26", "C25")).Value
    Next i
End With
End Sub
Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.
Error:015: Unable to exit Windows. Try the door.

Offline pa3ewc

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Oplossing.be
Re: For next loop vraagje...
« Reactie #2 Gepost op: 19 februari 2018, 11:56:41 »
Hallo Dotchiejack,

Ja dat is zeker in de goede richting. ! bedankt alvast hiervoor. het werkt nu en komen beiden kolommen als regels onder elkaar te staan :thumbsup:

Had alleen nu deze 2 regels op werkblad "Timeupdate" zo weergegeven dat de nieuwe timeupdates altijd bovenaan komt te staan en niet zoals het nu gebeurd eronder. Dan heb ik altijd de laatste update times boven aan staan. Zou je dit nog voor elkaar kunnen krijgen.? Dat zou super zijn.....

Moet even gaan kijken hoe jij je dat gedaan hebt met de macro. Zie dat je het c, c1, enzovoort gaat noemen voor de eventuele verdere kolommen die in wilde maken en ook weer hier aan toegevoegd worden.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 17.004
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: For next loop vraagje...
« Reactie #3 Gepost op: 19 februari 2018, 13:00:52 »
Hallo pa3ewc,

Had alleen nu deze 2 regels op werkblad "Timeupdate" zo weergegeven dat de nieuwe timeupdates altijd bovenaan komt te staan en niet zoals het nu gebeurd eronder. Dan heb ik altijd de laatste update times boven aan staan. Zou je dit nog voor elkaar kunnen krijgen.? Dat zou super zijn.....
Je kan in de macro van Dotchiejack, net voor de End Sub volgende code plaatsen om te sorteren op datum.

With ActiveWorkbook.Worksheets("Timeupdates").Sort
        .SetRange Range("A1:AF32")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

:) SoftAid :)             
Wegens veelvuldig melden van dubbelposten, het posten op verschillende help-fora van dezelfde vraag, zijn de gedragsregels op dit forum aangepast. Dubbelposten dient in de toekomst op voorhand gemeld te worden, met een melding en een link naar het topic op de andere site. De helpers wensen een weinig respect voor de inspanningen die ze doen om mensen te helpen. Je doet jezelf ook een plezier. Door je dubbelposten te melden wordt je vraag op meerdere fora beantwoord.

Offline Dotchiejack

  • Lid
  • *
  • Berichten: 77
  • Geslacht: Man
  • Oplossing.be
Re: For next loop vraagje...
« Reactie #4 Gepost op: 19 februari 2018, 13:16:32 »
Of zo:
Sub dotch()
Dim fRow As Long, iRow As Long
fRow = 2
Rows(fRow).Insert Shift:=xlDown
iRow = fRow
With Sheets("Updates")
Cells(iRow, 1).Resize(, 31).Value = Array(.[A1], .[B2], .[B5], .[B6], .[B3], .[B8], .[B7], .[B9], .[B10], .[B12], .[B11], .[B13], .[B14], _
.[B15], .[B16], .[B17], .[B18], .[B19], .[B20], .[B21], .[B22], .[B24], .[B23], .[B32], .[B31], .[B31], .[B30], .[B29], .[B28], .[B27], .[B26], .[B25])
Rows(fRow).Insert Shift:=xlDown
iRow = fRow
Cells(iRow, 1).Resize(, 31).Value = Array(.[A1], .[C2], .[C5], .[C6], .[C3], .[C8], .[C7], .[C9], .[C10], .[C12], .[C11], .[C13], .[C14], _
.[C15], .[C16], .[C17], .[C18], .[C19], .[C20], .[C21], .[C22], .[C24], .[C23], .[C32], .[C31], .[C31], .[C30], .[C29], .[C28], .[C27], .[C26], .[C25])
End With
End Sub
Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.
Error:015: Unable to exit Windows. Try the door.

Offline pa3ewc

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Oplossing.be
Re: For next loop vraagje...
« Reactie #5 Gepost op: 19 februari 2018, 14:08:30 »
Beste Dotchiejack en SoftAid,

Beiden bedankt voor jullie reactie.  :thumbsup:

Het werkt nu zoals ik het wilde hebben.
Heb nu ook de mogelijkheden om jullie voorbeelden wat aan te passen om te zien wat er zoal mee gebeurd.
Dit om wat ervan te leren natuurlijk.

Nogmaals dank.!
 

Offline Dotchiejack

  • Lid
  • *
  • Berichten: 77
  • Geslacht: Man
  • Oplossing.be
Re: For next loop vraagje...
« Reactie #6 Gepost op: 19 februari 2018, 14:40:51 »
Dank voor de terugkoppeling :thumbsup:
Suc6
Facebook is als gearresteerd worden: alles wat je zegt kan en zal tegen je gebruikt worden...
Soms merken mensen de dingen die we voor hen doen niet op, tot we er mee stoppen.
Error:015: Unable to exit Windows. Try the door.

Offline RedHead

  • Ambassadeur
  • *****
  • Berichten: 1.776
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: For next loop vraagje...
« Reactie #7 Gepost op: 19 februari 2018, 21:03:49 »
Persoonlijk lijkt het mij het allerslimste om je achterliggende database gelijk te houden aan de invoer velden in de sheet Customer. Zie mijn voorbeeld hierin. Zo hoef je namelijk helemaal niets met lussen te doorlopen...   ;)

Sub VerplaatsCustomerNaarUpdate()

    With Sheets("Timeupdates (2)")
        With .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
            .Resize(2).Value = Format(Now, "dd-mm-yyyy \/ hh:mm")
            .Offset(, 1).Resize(2, (.Parent.Rows(1).SpecialCells(xlCellTypeConstants).Columns.Count) - 1).Value = Application.transpose(Sheets("Customer").Range("B2:C32"))
        End With
    End With
   
End Sub
______________________________

Groet, Leo

 


www.combell.com