PDA

Visualizza versione completa : [Excel] Copiare celle tra due cartelle se valore è uguale ... help


silvershadow70
14-02-2009, 20.33.04
Ciao a tutti..

è tutto il pomeriggio che cerco di creare una macro per semplificarmi la vita ma non ci riesco.... :wall:

in sostanza ho due cartelle di lavoro (una con un elenco di pagamenti e l'altra con le fatture corrispondenti...) , quello che cerco di fare è quando si verifica la condizione che i due ID di pagamento (quello sul modulo dei pagamenti e quello sul modulo della fattura) coincidono allora vorrei copiare il netto ricevuto in una colonna accanto alla riga corrispondente della fattura.

Per essere più pratico, sulla cartella pagamenti ho:
giorno... netto.. id etc...

su quello fattura :
giorno ... ID ... etc...

la macro (che non dovrebbe essere poi più di tanto complessa) , dovrebbe copiarmi il valore del "netto" sulla cartella fattura quando i due ID coincidono.

ho provato (ma le mie conoscenze VB sono un po' limitate..) a fare un ciclo for next ma con alcuni comandi tipo cells(ir, ic).select ... selction.copy etc.. ma non riesco

c'è qualcuno che saprebbe darmi una mano..??

thanx :)

Franzo
17-02-2009, 09.52.25
Sub Macro1()

Dim Var1 As Integer
Dim Var2 As Integer

Var1 = Range("A1").Value 'Assegno il valore della cella A1 alla variabile Var1
Windows("2.xlsx").Activate 'Attivo il secondo floglio
Var2 = Range("A1").Value 'Assegno il valore della cella A1 alla variabile Var2
Windows("1.xlsx").Activate 'Attivo il primo floglio

If Var1 = Var2 Then 'Se le due variabili sono uguali..
MsgBox "Valori uguali"
Else 'Altrimenti...
MsgBox "Valori diversi"
End If

Var1 = 0 'Azzeriamo le variabili
Var2 = 0

End Sub

silvershadow70
19-02-2009, 00.54.34
ok grazie!
lo spirito di quello che devo fare è come descitto nella tua macro, però i valori che devo confrontare sono più di uno , naturalmente messi in colonna, per cui la macro dovrebbe inziare per esempio dal primo e scorrere fino in fondo fino a quando non trova il valore uguale..
ho provato con un for next e poi con cells + variabili ma vedo solo un gran movimento di fogli senza risultato .. in primo luogo non riesco a copiare ed incollare..


la macro che ho prodotto è questa... sicuramente c'è qualcosa di completamente insensato ma sono almeno 20 anni che nn programmo... :mm:

Sub compara()

ic = 18
ir = 2
ic2 = 3
ir2 = 1
For x = 1 To 10000
For y = 1 To 150
Workbooks("Pagamenti.xls").activate
If Cells(ir, ic) = Workbooks("Fatture 2006.xls").ActiveSheet.Cells(ir2, ic2) Then
Cells(ir, 11).Select
Selection.Copy
Windows("Fatture 2006.xls").Activate
Cells(ir2, 8).Select
Selection.Paste
Else: ir2 = ir2 + 1
End If
y = y + 1
Next
ir = ir + 1
x = x + 1
Next
End Sub

:wall:

Franzo
23-02-2009, 10.29.06
Ciao!
Adesso non ho excel e vba davanti per fare delle prove;
in ogni caso per scorrere le righe puoi utilizzare una cosa del genere

For i = 1 To 10
Range("A" & i).Select
If ActiveCell.Value = 1 Then 'Se la cella soddisfa i tuoi criteri
....... scrivi qua quello che vuoi fare
....... se vuoi uscire dal ciclo inserisci i=10
End If
Next

non ti serve il copia incolla, inserisci in una variabile il contenuto della cella con NomeVariabile=ActiveCell.Value

ciao!

Franzo
23-02-2009, 10.33.24
Faccio un collage tra i due post che ho scritto:

Dim Var1 As Integer
Dim Var2 As Integer

For i = 1 To 10

Var1 = Range("A" & i).Value 'Assegno il valore della cella A+i alla variabile Var1
Windows("2.xlsx").Activate 'Attivo il secondo floglio
Var2 = Range("A" & i).Value 'Assegno il valore della cella A+i alla variabile Var2
Windows("1.xlsx").Activate 'Attivo il primo floglio

If Var1 = Var2 Then 'Se le due variabili sono uguali..
MsgBox "Valori uguali"
Else 'Altrimenti...
MsgBox "Valori diversi"
End If

Var1 = 0 'Azzeriamo le variabili
Var2 = 0

Next

End Sub

Davidello
24-02-2011, 16.19.57
Salve,
ho un piccolo-grande problema

ho un foglio excel con una colonna fatta di "codice".
ad ogni codice sono associate altre 3 colonne che specificano quel codice a cosa corrisponde.
dato che inserirsco sempre gli stessi codici,
come posso fare per dirgli, copia il contenuto quando vedi lo stesso codice?
es.
codice 1203 (a1) corrisponde a Mario (a2), Rossi (a3), 32 (a4), Italia (a5), Maschio (a6)?


Grazieee