J'ai 2 classeurs - Fichier de données (feuille: Andhra Pradesh) & Fichier de facture (nouvelle facture à ajouter après la dernière facture).VBA copier des données pour copier des données dans un nouveau classeur basé sur des critères
Je souhaite utiliser le tableau croisé dynamique dans le classeur de données pour créer une facture dans le classeur de facture. 1 numéro de commande par 1 facture.
Par exemple: la ligne 9B DO3566521 sera copiée dans une nouvelle facture 300 dans le classeur facture avec les informations suivantes:
- Date de commande fermé (A9) à copier dans I16
- PO Numéro DO666 (B9) à copier dans B31,
- Numéro de commande 1234 (C9) à copier dans A34,
- Nom Spec - 3 articles (E9: E11) à copier dans B34: B36,
- facture Quantité (F9: F11) à copier dans G34: G36,
Montant de la facture (G9: G11) à copier dans I34: 36
Numéro PO DO667 (B12) doit être copié dans une autre nouvelle facture 301 (une nouvelle feuille de calcul 301 à ajouter dans le classeur facture). ..
je peux obtenir le classeur facture pour ajouter/copier une nouvelle feuille de calcul, mais je vais avoir la copie de la difficulté sur les données & écrire la fonction de boucle. comment créer une nouvelle facture s'il s'agit d'un bon de commande différent? Toute aide serait très appréciée!! Par ailleurs, j'ai également une macro (Sub Get_Spelling()
) pour convertir les nombres en mots dans la feuille de calcul de facture (A55). Je me demande simplement comment je peux les joindre ensemble afin qu'il soit mis à jour automatiquement lorsque la facture est créée.
classeur de données - Nom de la feuille: Andhra Pradesh
A9 B9 C9 D9 E9 F9 G9
Order Closed Date PO Number Order ID Item Index Spec Name Qty Invoice Amt
15/09/11 DO666 1234 1 A 10 $100
2 B 20 $200
3 C 30 $300
DO667 567 1 L 40 $100
2 K 50 $200
classeur facture - Nom de la feuille: Numéro de facture (par ex Inv 300)
B31
PO Number DO666
A34 B34 G34 I34
Order ID Spec Name Qty Invoice Amt
1234 A 10 $100
B 20 $200
C 30 $300
Invoice 301
B31
PO Number: DO667
Voici mon code:
Option Explicit
Sub Create_Invoice()
Dim oldsheet As Worksheet
Dim newSheet As Worksheet
Dim oldnumber As Integer
Dim newnumber As Integer
Dim databook As Workbook
Dim datasheet As Worksheet
Dim invbook As Workbook
Set databook = ActiveWorkbook
Set invbook = ActiveWorkbook
Application.Workbooks.Open ("C:\Users\Owner\Desktop\New folder\AP VAT Inv 201 -.xls")
'Set invbook = ActiveWorkbook
oldnumber = ActiveSheet.Name
newnumber = oldnumber + 1
ActiveSheet.Copy After:=ActiveWorkbook.ActiveSheet
Set newSheet = ActiveSheet
ActiveSheet.Name = newnumber
ActiveSheet.Range("I15").Value = newnumber
ActiveSheet.Range("I16") = databook.Sheets("Andhra Pradesh").Range("A9")
MsgBox "Invoices have been created successfully"
ActiveWorkbook.Save
End Sub