Condividi:        

Aiuto Macro

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

Aiuto Macro

Postdi yaryz » 07/12/09 15:48

Ciao a tutti, avrei la necessità di sapere come creare una macro con delle confdizioni.
Premetto che non sono un esperto e che fino ad adesso ho cretao le macro con il registratore macro, ma ci sono delle funzioni che non so come fare

Mi spego meglio avrei la necessita in un foglio excel dove ci sono oltre 10000 righe di trovare alcuni valori e si sostituirli o cancellare l'intera riga a seconda del valore contenuto

ecco di cosa avrei bisogno
se la colonna A, B e C sono vuote inserisci Valore in colonna A "NOVITA' "
se la colonna A e C sono piene e la colonna B è vuota elimina intera riga.
se nella colonna B trovi valore "X" e la colonna C è vuota elimina intera riga

Vi sarei grato di un vostro aiuto

saluti
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Sponsor
 

Re: Aiuto Macro

Postdi Flash30005 » 07/12/09 19:37

prova questo codice
Codice: Seleziona tutto
Sub CancellaSe()
righe = Cells(Rows.Count, 1).End(xlUp).Row
For I = righe To 1 Step -1
If Cells(I, 1).Value = "" And Cells(I, 2).Value = "" And Cells(I, 3).Value = "" Then
Cells(I, 1).Value = "NOVITA'"
GoTo salta
End If
If Cells(I, 2).Value = "X" And Cells(I, 3).Value = "" Then
Rows(I & ":" & I).Delete
GoTo salta
End If
If Cells(I, 1).Value <> "" And Cells(I, 2).Value = "" And Cells(I, 3).Value <> "" Then Rows(I & ":" & I).Delete
salta:
Next I
End Sub


Non so se hai valutato tutte le combinazioni possibili comunque questa macro fa quello che chiedi

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi yaryz » 29/12/09 16:03

Ciao Ti rispondo soltanto adesso perchè fastweb mi ha tenuto senza linea per un bel po a causa di un lavoro stradale ...
Ti ringrazio per la dritta e credo che sto risolvendo.
ho ancora difficoltà poichè non riesco a capire come trovare i valori che iniziano con una determinata sigla o frase e non conosco il comando
avrei la necessità di eseguire queste condizioni:

*se in F trovi la PRIMA PAROLA CON "Subwoofer" inserisci sempre nella stessa riga in B "Car audio" e in C "Subwoofer"

*se in F trovi la PRIMA PAROLA CON "Pack amplificatore" inserisci sempre nella stessa riga in B "Car audio" e in C "Amplificatore"
*se in F trovi la PRIMA PAROLA CON valore "Piastra vinile" O "Giradischi" inserisci sempre nella stessa riga in colonna C valore "Giradischi"

*se in F trovi la PRIMA PAROLA CON "Barbecue" inserisci sempre nella stessa riga in B "Cottura / Microonde/ Macchine per il pane" e in C "Cucina festiva"

* elimina intere righe se nella colonna D trovi valori che iniziano per "PN"


dimenticavo, ho inserito un po di istruzioni facendo riferimento al tuo codice ma la cosa strana che per far si che si completi il tutto devo rilanciare la macro 4/5 volte se no non mi controlla tutte le mie if.

non riesco a capire da cosa dipenda.

in ogni caso grazie
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Re: Aiuto Macro

Postdi Flash30005 » 30/12/09 01:27

Ciao Yaryz

Le condizioni sono solo queste quattro in F e la "PN" in D?
oppure hai un elenco di prodotti più ampio e ti sei limitato a solo 4 esempi?

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi Anthony47 » 30/12/09 15:30

Per selezionare una parte di una stringa, usa le funzioni vba mid oppure left oppure right.

Vista l' evoluzione del problema il mio suggerimento e' fare una macro modulare, che segua una logica fissa ma su dati inseriti volta per volta o tramite una userform o (meglio, secondo me) inseriti in un' area del foglio di lavoro; in altre parole una macro che attivi una volta con le istruzioni Subwoofer, Car audio e Subwoofer, e un' altra con Pack amplificatore, Car audio e Amplificatore.

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

Re: Aiuto Macro

Postdi yaryz » 30/12/09 17:06

eccomi di nuovo qui
no le if sono solo quelle,
PN solo quello!

grazie comunque per la pazienza

Ciao
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Re: Aiuto Macro

Postdi Flash30005 » 31/12/09 02:59

Copia, incolla esegui questa macro
Codice: Seleziona tutto
Sub Compila()
righe = Cells(Rows.Count, 6).End(xlUp).Row
For I = righe To 1 Step -1
If Mid(UCase(Range("D" & I).Value), 1, 2) = "PN" Then Rows(I & ":" & I).Delete
Next I
For RR = 1 To righe
StringaB = ""
StringaC = ""
If Mid(UCase(Range("F" & RR).Value), 1, 9) = "SUBWOOFER" Then
StringaB = "Car audio"
StringaC = "Subwoofer"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 18) = "PACK AMPLIFICATORE" Then
StringaB = "Car audio"
StringaC = "Amplificatore"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 14) = "PIASTRA VINILE" Or Mid(UCase(Range("F" & RR).Value), 1, 10) = "GIRADISCHI" Then
StringaB = ""
StringaC = "Giradischi"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 8) = "BARBECUE" Then
StringaB = "Cottura / Microonde/ Macchine per il pane"
StringaC = "Cucina festiva"
End If
Range("B" & RR).Value = StringaB
Range("C" & RR).Value = StringaC
Next RR
End Sub

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi yaryz » 04/01/10 15:34

Ciao Ti ringrazio per la dritta solo che mi sa che c'è qualcosa che non va.
esempio se ci sono altri valori in B e C che nelle condizioni non sono presenti, quando lancio la macro mi cancella tutto quello che è presente su B e C

ho provato a togliere

Range("B" & RR).Value = StringaB
Range("C" & RR).Value = StringaC

e sempra funzionare ovvero lascia invariati i campi, ma non so se sia giusto!

che ne pensi?
come sempre grazie
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Re: Aiuto Macro

Postdi yaryz » 04/01/10 15:45

yaryz ha scritto:ho provato a togliere

Range("B" & RR).Value = StringaB
Range("C" & RR).Value = StringaC

e sempra funzionare ovvero lascia invariati i campi, ma non so se sia giusto!

che ne pensi?
come sempre grazie


rettifico se tolgo quello l'ultima condizione non funziona
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Re: Aiuto Macro

Postdi Flash30005 » 04/01/10 16:31

A questa domanda
Flash30005 ha scritto:Le condizioni sono solo queste quattro in F e la "PN" in D?
oppure hai un elenco di prodotti più ampio e ti sei limitato a solo 4 esempi?


Hai risposto
yaryz ha scritto:no le if sono solo quelle,
PN solo quello!

Quella macro fa quello che hai richiesto
Se ci sono altre condizioni a me sconosciute non posso saperlo

Converrebbe che pubblicassi uno "stralcio" dei tuoi dati con un esempio reale di cosa vorresti ottenere

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi yaryz » 04/01/10 17:08

Probabilmente mi sarò spiegato male
difatti queste istruzioni li ho aggiunti alle altre che mi avevi suggerito precedentemente.

Purtroppo ho un file di 10.000 righe CIRCA e necessito di modificare un po di valori
fino ad adesso ho risolto con aiuti vari tra forum ecc..

questa mia ultima richiesta faceva sempre riferimento al mio primo messaggio.
so che magari per te è un lavoro ed eventualemnte sarei disposto a retribuire il tutto.
saluti
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40

Re: Aiuto Macro

Postdi Flash30005 » 04/01/10 17:23

Ok, dammi solo in tempo di integrare le due macro ;)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi Flash30005 » 04/01/10 17:34

Prova questa (fai sempre una copia del file originale)
Codice: Seleziona tutto
Sub CancellaECompila()
righe = Cells(Rows.Count, 1).End(xlUp).Row
For I = righe To 1 Step -1
If Cells(I, 1).Value = "" And Cells(I, 2).Value = "" And Cells(I, 3).Value = "" Then
Cells(I, 1).Value = "NOVITA'"
GoTo salta
End If
If Cells(I, 2).Value = "X" And Cells(I, 3).Value = "" Then
Rows(I & ":" & I).Delete
GoTo salta
End If
If Cells(I, 1).Value <> "" And Cells(I, 2).Value = "" And Cells(I, 3).Value <> "" Then Rows(I & ":" & I).Delete
If Mid(UCase(Range("D" & I).Value), 1, 2) = "PN" Then Rows(I & ":" & I).Delete
salta:
Next I
For RR = 1 To righe
StringaB = ""
StringaC = ""
If Mid(UCase(Range("F" & RR).Value), 1, 9) = "SUBWOOFER" Then
StringaB = "Car audio"
StringaC = "Subwoofer"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 18) = "PACK AMPLIFICATORE" Then
StringaB = "Car audio"
StringaC = "Amplificatore"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 14) = "PIASTRA VINILE" Or Mid(UCase(Range("F" & RR).Value), 1, 10) = "GIRADISCHI" Then
StringaB = ""
StringaC = "Giradischi"
End If
If Mid(UCase(Range("F" & RR).Value), 1, 8) = "BARBECUE" Then
StringaB = "Cottura / Microonde/ Macchine per il pane"
StringaC = "Cucina festiva"
End If
Range("B" & RR).Value = StringaB
Range("C" & RR).Value = StringaC
Next RR
End Sub


Non avendo un foglio con i dati non l'ho potuta provare

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Aiuto Macro

Postdi yaryz » 08/01/10 15:31

ok ti ringrazio, lunedi lo provo e ti faccio sapere!
buon fine settimana
yaryz
Utente Junior
 
Post: 14
Iscritto il: 07/12/09 15:40


Torna a Applicazioni Office Windows


Topic correlati a "Aiuto Macro":


Chi c’è in linea

Visitano il forum: Nessuno e 70 ospiti