Condividi:        

prelevare a step di 4

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

prelevare a step di 4

Postdi raimea » 18/10/21 17:00

ciao

tramite una macro
vorrei prelevare 33 estrazioni
a step di 4

nel fgl ciclo32 nella cella A2 ho un numero di riferimento
ES 9861

vado nel fgl archivio cerco in colonna A il >> 9861
e copio la riga antecedente 9861 cioe la9861-1= 9860
copio la riga del 9860 da col D:BF

torno in fgl 32 mi posiz in H1 incollo (solo i valori)

poi a step di 4 ripeto il ciclo x 33 volte

la successiva riga da cercare in archivio sara 9860+4=9864
copio sempre da D:BF torno fgl 32 e dovro' incollarla in H1+4=H5

ecc...
l'ultima riga da compilare e H129


vi allego il file
https://www.dropbox.com/s/tuo7sj1itxm8ijn/step_4.rar?dl=0


attualmente lo faccio con formule che devo spesso aggiornare
ma il rischio di errore e' elevato

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Sponsor
 

Re: prelevare a step di 4

Postdi Anthony47 » 18/10/21 17:46

Angelo, non usare il formato RAR per allegare un xlsx /xlsm /xlsb: sono gia' file zippati, il rar fa risparmiare poco ma costringe a un giro di unzip+estrai che costa piu' dei kb risparmiati.

Quanto alla questione, per come l'ho capita, prova con questa macro:
Codice: Seleziona tutto
Sub ByFour()
Dim Sorg As Worksheet, Dest As Worksheet, lFor As Long
Dim myMatch
'
Set Sorg = Sheets("Archivio")       '<<< Il foglio coi dati di partenza
Set Dest = Sheets("Estraz")         '<<< Il foglio dove esportare
'
lFor = Dest.Range("A2")             '<<< Dove si trova la prima voce da cercare
'
For i = 1 To 33
    myMatch = Application.Match(lFor - 1, Sorg.Range("A1:A20000"), False)
    If Not IsError(myMatch) Then
        Dest.Cells((i - 1) * 4 + 1, "H").Resize(1, 55).Value = Sorg.Cells(myMatch, 4).Resize(1, 55).Value
        lFor = lFor + 4
    Else
        MsgBox ("Riga " & lFor - 1 & " non trovata. Esportazione TERMINATA")
        Exit Sub
    End If
Next i
MsgBox ("Completato...")
End Sub

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: prelevare a step di 4

Postdi raimea » 18/10/21 17:51

ciao
tutto ok

perfetta

grazie
-------------
Angelo, non usare il formato RAR per allegare un xlsx /xlsm /xlsb: sono gia' file zippati, il rar fa risparmiare poco ma costringe a un giro di unzip+estrai che costa piu' dei kb risparmiati.


non lo sapevo

grazie x l info

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: prelevare a step di 4

Postdi raimea » 14/11/21 12:16

ciao

piccolo bug
non preleva l ultima riga di fgl archivio

(la riga dove parte a prelevare e' corretta.)

se in A2 fgl estraz scrivo il record 9863
l ultimo record che dovrebbe prelevare e' il 9988
che in fgl archivio e' presente.

ma non lo riporta in fgl estraz,
in riga 129 di fgl estraz scrive cose strane

allego il file
la macro e in modulo 6

https://www.dropbox.com/scl/fi/47ie8fii2yc8ok23flg4d/step_4.xlsm?dl=0&rlkey=i4wr78m6jr2cnh3n82uh4ssc3

ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago

Re: prelevare a step di 4

Postdi Anthony47 » 14/11/21 15:30

Il problema e' il valore imprevedibile presente in Archivio!A1; escludiamolo dalla ricerca, cambiando le istruzioni marcate ** nel seguente loop:
Codice: Seleziona tutto
For i = 1 To 33
    myMatch = Application.Match(lFor - 1, Sorg.Range("A2:A20000"), False)          ' **
    If Not IsError(myMatch) Then
        Dest.Cells((i - 1) * 4 + 1, "H").Resize(1, 55).Value = Sorg.Cells(myMatch + 1, 4).Resize(1, 55).Value   ' **
        lFor = lFor + 4
    Else
        MsgBox ("Riga " & lFor - 1 & " non trovata. Esportazione TERMINATA")
        Exit Sub
    End If
Next i

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: prelevare a step di 4

Postdi raimea » 14/11/21 15:44

ciao

sistemato tutto ok

grazie
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1414
Iscritto il: 11/02/10 07:33
Località: lago


Torna a Applicazioni Office Windows


Topic correlati a "prelevare a step di 4":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti