Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

estrai solo se si verifica condizione

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

estrai solo se si verifica condizione

Postdi pascod » 18/10/12 13:26

Ciao Raga,
ho necessità di aiuto per una macro abbastanza semplice..
ho imparato come si scrivono i cicli ma purtroppo alcune cose mi mancano:
la macro deve scandire le righe della colonna j in maniera tale da estrarre dalle righe che iniziano con " * " i caratteri che vanno dalla posizione cinque alla dodici [+mid range( );5;7) ] -
l'estrazione va copiata nella cella immediatamente a destra nella colonna j+1 [usiamo offset, corretto??]
e la stringa estratta va inoltre incollata per tutte le righe soprastanti finchè non si incontra una cella non vuota, sempre nella colonna j+1
così per tutte le righe della colonna J
il risultato dovrebbe essere quello che vedete qui giù!!!

5160100000 PRINT ADVERTISING ITW0001
5160500000 ABOVE-OTHER ITW0001
5166202000 TV ADVERTISING ITW0001
* ITW0001 ITALY A&P ATL BLADES ITW0001
4700000000 COS - ORIGIN EBC
5166201000 APR BELOW OTHER
* ITW0002 ITALY A&P BTL BLADES
5161001000 MERCHANDISING
5166201000 APR BELOW OTHER
* ITW0003 ITALY CAT MGT BTL BL
4700000000 COS - ORIGIN EBC
4700000001 IT - INV. VARIATION
4700400000 RETURN COS PTX


Grazie!!!!
Pasquale
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Sponsor
 

Re: estrai solo se si verifica condizione

Postdi ricky53 » 18/10/12 14:36

Ciao,
applicando l'estrazione che hai citato
[+mid range( );5;7) ]
alla prima occorrenza con "aterisco" si ottiene "W0001 I"

Tu che valore vuoi ottenere ?
Forse "ITW0001" ?
Ossia parte da "3" ed è lungo "7"

Ipotizziamo che i tuoi dati siano nella colonna "A" e che partano dalla riga "2" e che l'asterisco sia nella prima posizione
allora in "B"" scrivi
Codice: Seleziona tutto
=SE(STRINGA.ESTRAI(A2;1;1) ="*"; STRINGA.ESTRAI(A2;3;7); B3)

e copia in basso fino a necessità ...

Prova e ... sono QUI
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrai solo se si verifica condizione

Postdi ricky53 » 18/10/12 14:45

Ciao,
o riletto quanto hai scritto
il risultato dovrebbe essere quello che vedete qui giù!!!

e ... URCA ...
i dati che hai riportato sono quelli finali !!!

Allora i dati di partenza quali sono ???
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrai solo se si verifica condizione

Postdi pascod » 18/10/12 14:57

in effetti il risultato finale è quello che si legge nelle prime 4 righe.. le altre sono il dato di partenza.
Mi scuso..
Comunque
hai anche il codice Macro?
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: estrai solo se si verifica condizione

Postdi ricky53 » 18/10/12 15:10

Ciao,
non mi è chiaro puoi inviare separati i dati di PARTENZA da quelli di ARRIVO.
Puoi inviare un file di esempio ... sarà più chiaro


E' condizione vincolante la macro?

Se i dati non sono molti è più semplice operare con una formula.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrai solo se si verifica condizione

Postdi pascod » 18/10/12 15:28

Cost elements
5160100000 PRINT ADVERTISING
5160500000 ABOVE-OTHER
5166202000 TV ADVERTISING
* ITW0001 ITALY A&P ATL BLADES
4700000000 COS - ORIGIN EBC
5166201000 APR BELOW OTHER
* ITW0002 ITALY A&P BTL BLADES
5161001000 MERCHANDISING
5166201000 APR BELOW OTHER
* ITW0003 ITALY CAT MGT BTL BL
4700000000 COS - ORIGIN EBC
4700000001 IT - INV. VARIATION
4700400000 RETURN COS PTX
5006500000 OTHER PLANT COST
5235920000 FSC/MISC CHGE IN/OUT
6000000000 OTHER INCOME
8000000000 INT INCOME BANKS
US02002100 SALES CUSTOMER DOM
US09030000 US O/S INT EARNED
US09190000 US OTHER EXPENSE
US41013010 US OTHER DEFLATORS
US47000001 IT INV. VARIATION
* ITW0999 MARKET CC ITALY BLADES
1001201A M&D - SALES Sal&Ben
1001201F M&D - SALES Other
1001201I M&D SLS ALLOC IN/OUT
5081000000 PREMIUMS/COMMISSIONS
5126000000 SOCIAL SECURITY
5126002002 SOC SECURITY AGENTS
5126002003 SOC SEC AGENTS SUPL
purtroppo non so come uploadare un file per rendervelo disponibile.. comunque
questi sono i dati.. una piccolissima parte, direi.
Come vedi le celle con l'asterisco ricorrono ogni indefinito tot di righe. devo copiare "ITW0..." nella cella a dx (colonna 2) e poi incollarlo in su finchè le celle nella colonna 2 sono vuote.. . stop!
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: estrai solo se si verifica condizione

Postdi ricky53 » 18/10/12 15:35

Ciao,
prova con la formula che ti ho inviato.

Con la macro dovrei scrivere il codice ed al momento non ho il tempo e poi è più facile con la formula.

Attendiamo qualche altro utente che ti può proporre del codice ...


Ovviamente l'ultima riga deve contenere "l'asterisco" e IT.....
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrai solo se si verifica condizione

Postdi Anthony47 » 18/10/12 19:04

Visto che la formula di Ricky funziona ti serve proprio una macro?

Ciao a tutti
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: estrai solo se si verifica condizione

Postdi pascod » 19/10/12 09:25

ok.. Ragazzi.. va benissimo così!! no problem.. volevo sapere come scrivere il mid in una macro..
ma effettivamente me la registro e lo trovo!!

Ciao e Grazie!
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: estrai solo se si verifica condizione

Postdi ricky53 » 19/10/12 09:53

Ciao,
a scopo didattico ecco un esempio di come utilizzare una macro (con la funzione "MID") per ottenere quello che ti avevo proposto con una formula.
Codice: Seleziona tutto
Sub Scrivi_Codice()
    Dim Riga As Long, UR As Long, Colonna As Integer
   
    Colonna = 1
    UR = Range("A" & Rows.Count).End(xlUp).Row
    For Riga = UR To 2 Step -1
        If Mid(Cells(Riga, Colonna), 1, 1) = "*" Then
            Cells(Riga, Colonna + 1) = Mid(Cells(Riga, Colonna), 3, 7)
        Else
            Cells(Riga, Colonna + 1) = Cells(Riga + 1, Colonna + 1)
        End If
    Next Riga
End Sub


Come ti avevo scritto, in uno dei miei precedenti interventi, è sicuramente più complicato (non molto si tratta di codice semplice) rispetto alla formula.

Ciao
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "estrai solo se si verifica condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti