Codice VBA per creare fattura dopo scarico materia
Hai un problema con Excel?
Codice VBA per creare fattura dopo scarico materia
di marco_budin (utente non iscritto) data: 11/09/2016 08:29:38
Ciao a tutti, ho creato uno excel per scarico/ carico dei prodotti con lettore ottico. Ma quello che vorrei fare è selezionare una cella (J113) cliccare con un lettore ottico sul prodotto, appare la cifra e senza fare INVIO o OK si autoscarica e si autocancella pronto per poter accettare di nuovo un altro codice a barre. è fattibile? io attualmente ho creato una Macro che quando la schiaccio scarica il prodotto (Carico). Ho provato a fare un altra macro per lo scarico automatico, ma devo comunque dare OK (
Sub carico()
' carico Macro
Sheets("Fatturazione neuro stroke").Select
Columns("L:L").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("stroke").Select
Range("j115").Select
ActiveCell.FormulaR1C1 = "1"
Range("j113:j113").Select
End Sub
-------------------------------------------------------------
Private Sub Worksheet_(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("j115")) Is Nothing Then
Columns("n:n").Copy
Columns("C:C").PasteSpecial Paste:=xlPasteValues
Sheets("stroke").Select
End If
Application.ScreenUpdating = True
End Sub |
di patel data: 11/09/2016 08:55:48
la seconda macro deve stare nel modulo del foglio ed avere il nome così
Private Sub Worksheet_Change(ByVal Target As Range)
e non
Private Sub Worksheet_(ByVal Target As Range)
Codice VBA per creare fattura dopo scarico materia
di marco_budin (utente non iscritto) data: 11/09/2016 10:48:39
Ciao Patel, ti ringrazio per la tua correzione. Solo che adesso si presenta un problema. Perché appena do l'INVIO esegue il codice. ma il codice lo deve eseguire non nella cartella "stroke" ma nella sotto cartella "Fatturazione neuro stroke" e poi tornare nella cella J113 della sotto cartella "stroke". ho provato a fare il codice, ma non funziona. Infatti il codice che ti ho scritto per primo non funziona, invece la macro creata (il secondo codice che ti ho copiato) funziona.
Praticamente il codice è perfetto quello del Change, ma non esegue la macro correttamente. Spero che tu possa aiutarmi (ho allegato anche il file)
saluti
Marco
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("j113")) Is Nothing Then
Sheets("Fatturazione neuro stroke").Select
Columns("L:L").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("stroke").Select
Range("j115").Select
ActiveCell.FormulaR1C1 = "1"
Range("j113:j113").Select
End If
Application.ScreenUpdating = True
End Sub
-----------------------------------------------------------------------
Sub carico()
'
' carico Macro
'
'
Sheets("Fatturazione neuro stroke").Select
Columns("L:L").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("stroke").Select
Range("j115").Select
ActiveCell.FormulaR1C1 = "1"
Range("j113:j113").Select
End Sub |
di patel data: 11/09/2016 18:00:07
Io mi sono limitato a correggere la tua macro senza sapere cosa deve fare, non posso aiutarti se non mi dici a parole semplici quello che vuoi che faccia
di marco_budin data: 11/09/2016 19:07:47
Scusami patella, ti spiego, allora clicco bella cella j113 della cartella "stroke" con L invio in automatico
- copia la colonna L:L della sotto cartella "fatturazione neuro stroke" e incolla i valori nella colonna C:C sempre della sottocartella "fatturazione neuro stroke".
- poi torna nella sotto cartella "stroke" imposta il numero 1 nella cella j115 e si riposiziona nella cella j113.
Però appunto nel file che ti ho allegato vedi che non funziona...
Questo codice appunto va su 2 sottocartella di Excel... E non so se è fattibile.
Ti ringrazio Anticipatamente e in attesa della tua risposta ti auguro una buona serata
Marco
nspose:=False
Sheets("stroke").Select
Range("j115").Select
ActiveCell.FormulaR1C1 = "1"
Range("j113:j113").Select
End If
Application.ScreenUpdating = True
End Sub |
di marco_budin data: 11/09/2016 19:38:48
Scusami Patel, ti spiego, allora clicco bella cella j113 della cartella "stroke" con L invio in automatico
- copia la colonna L:L della sotto cartella "fatturazione neuro stroke" e incolla i valori nella colonna C:C sempre della sottocartella "fatturazione neuro stroke".
- poi torna nella sotto cartella "stroke" imposta il numero 1 nella cella j115 e si riposiziona nella cella j113.
Però appunto nel file che ti ho allegato vedi che non funziona...
Questo codice appunto va su 2 sottocartella di Excel... E non so se è fattibile.
Ti ringrazio Anticipatamente e in attesa della tua risposta ti auguro una buona serata
Marco
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("j113")) Is Nothing Then
Sheets("Fatturazione neuro stroke").Select
Columns("L:L").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("stroke").Select
Range("j115").Select
ActiveCell.FormulaR1C1 = "1"
Range("j113:j113").Select
End If
Application.ScreenUpdating = True
End Sub
|
di patel data: 11/09/2016 22:39:17
prova così
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("j113")) Is Nothing Then
With Sheets("Fatturazione neuro stroke")
.Columns("L:L").Copy
.Columns("C:C").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
Range("j115") = "1"
Range("j113").Select
End If
Application.ScreenUpdating = True
End Sub |
di marco_budin data: 12/09/2016 18:37:05
Ciao Patel, ti ringrazio per il grande aiuto che mi hai dato. Grazie per il tuo aiuto e per la tua disponibilità nell'aiutarmi. Spero alla prossima, ti auguro una buona serata e a presto
Marco
Vuoi Approfondire?