Condividi:        

Excel : Macro copia incolla

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

Excel : Macro copia incolla

Postdi frigobar » 19/03/13 12:10

Ciao! Sono di nuovo alle prese con terribili (almeno per me!) fogli di excel! Ho bisogno ancora del vostro prezioso aiuto.

Vorrei dire al programma che quando la casella A contiene un determinato valore, mi selezioni il contenuto della casella E di quella riga e me lo copi nella casella P di quella riga e di tutte le successive (fino alla riga dove A ha di nuovo quel valore)
io ho provato a fare una cosa del genere (non ridetene!!!) :oops:

Sub Copia()
Worksheets("Foglio1").Select
Ur = Range("A" & Rows.Count).End(xlUp).Row
If Range ("A") .Value = "UserEvent" Then
Cells(E).Select
Selection.Copy
Cells(P).Select
ActiveSheet.Paste


ho chiaramente bisogno di voi!!!!!
frigobar
Utente Junior
 
Post: 16
Iscritto il: 28/11/12 23:30

Sponsor
 

Re: Excel : Macro copia incolla

Postdi Anthony47 » 19/03/13 12:28

Dovresti pero' chiarire un paio di cose:
-come i dati finiscono in colonna A (es vengono importati da un file esterno, vengono prodotti da una formula, vengono scritti con la tastiera, ...)
-quel "determinato valore" e' un valore noto (quale?) o intendi un qualsiasi valore, facendo quindi riferimento a un intervallo che parte da un qualsiasi valore e finisce con lo stesso valore?

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

Re: Excel : Macro copia incolla

Postdi frigobar » 19/03/13 12:38

si scusami, chiarisco
il valore che cerco della casella A è la scritta "UserEvent"
si tratta di output di un macchinario di registrazione, originariamente dati come file .txt e poi da me copiati in excel.
Quindi ho questo foglio dove nella casella A posso avere sia la scritta "Record" che "UserEvent"
Quando in A c'è scritto "userevent" voglio copiare il contenuto della casella E di quella riga (sempre testo) in p..
frigobar
Utente Junior
 
Post: 16
Iscritto il: 28/11/12 23:30

Re: Excel : Macro copia incolla

Postdi Anthony47 » 19/03/13 13:01

Ho ancora qualche dubbio, comunque prova una macro come questa:
Codice: Seleziona tutto
Sub Macro2()
Dim myFl As Boolean, myString As String
myString = "UserEvent"    '<<< Il valore da cercare
For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(I, 1).Select
    If Cells(I, "A").Value = myString And myFl = False Then
        myFl = True
        myC = Cells(I, "E").Value
    Else
        If Cells(I, "A").Value = myString And myFl = True Then myC = Cells(I, "E").Value
    End If
    If myFl Then Cells(I, "P").Value = myC
Next I
End Sub

Essa mette in colonna P il valore trovato in col E sulle righe che hanno la scritta in col A; la modifica viene fatta su tutto il foglio, dalla prima occorrenza della scritta all' ultima scritta presente.
Non so se e' quello che chiedevi, quindi fai le prove su una COPIA del tuo file.

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

Re: Excel : Macro copia incolla

Postdi frigobar » 19/03/13 16:47

grazie funziona!!!!!
:D :D :D
frigobar
Utente Junior
 
Post: 16
Iscritto il: 28/11/12 23:30

Re: Excel : Macro copia incolla

Postdi frigobar » 19/03/13 19:30

Scusatemi, non è finita qui ahimè.
Dovrei copiare il testo della cella J nella cella L della riga precedente, però solo se il testo nella J contiene la parola "UE-keypress"

Giusto per farvi ridere un po vi incollo il mio rozzo tentativo di venirci a capo

Sub Macro()
UR = Range("L" & Rows.Count).End(xlUp).Row
If Mid(UCase(Range("L").Value), 11, 22) = "UE-KEYPRESS" Then
Cell("L").Select.Copy.
(R -1,"J").Select. Paste.
End If
Next UR
End Sub
frigobar
Utente Junior
 
Post: 16
Iscritto il: 28/11/12 23:30

Re: Excel : Macro copia incolla

Postdi Anthony47 » 19/03/13 23:22

Pero' potresti comparare la sintassi del tuo linguaggio fba con quanto noi scriviamo nel piu' digeribile linguaggio vba; senza pretendere per ora che leggi anche l' help on line...
Inoltre hai usato il termine equivoco "contiene" per descrivere la logica da realizzare: significa "include" (es "pippo e pluto vanno a spasso" include la parola "pippo") oppure significa "e' uguale a"?
Infine non hai detto se questa operazione la devi fare insieme alla precedente oppure isolatamente.

Con queste approssimazioni prova a lanciare questa macro:
Codice: Seleziona tutto
Sub Macro3()
Dim I As Long, myString As String
myString = "UE-keypress"    '<<< Il valore da cercare
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Len(Cells(I, "J")) > Len(Replace(UCase(Cells(I, "J").Value), UCase(myString), "")) Then
        Cells(I - 1, "L").Value = Cells(I, "J").Value
    End If
Next I
End Sub

Se devi eseguirla insieme alla macro precedente, basta che in coda a quella macro inserisci il richiamo alla nuova, cioe'
Codice: Seleziona tutto
Call Macro3   'AGGIUNGERE
End Sub       'Esistente

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


Torna a Applicazioni Office Windows


Topic correlati a "Excel : Macro copia incolla":


Chi c’è in linea

Visitano il forum: Nessuno e 61 ospiti