Je dois créer des calculs pour environ 150 produits, dont chacun comprend environ 50 à 60 sous-produits. Selon le fait que le sous-produit soit produit ou acheté à partir d'une source externe, le prix serait calculé différemment. Essentiellement, je dois copyr-coller le poids et le prix pour chaque sous-produit inclus dans le produit et déterminer quelle est la source.
Je souhaite que Excel vérifie les calculs précédemment effectués dans le même dossier (tous les classurs différents) et s'il trouve une cellule dans l'un des classurs, puis copyz-collez le poids, le prix et la source dans le classur actuellement ouvert. Je suis complètement perdu quant à la façon de comparer les cellules et si une correspondance est trouvée, puis copyz-la au bon endroit. Je crois que .Find et .FindNext pourraient être utiles ici, mais je ne suis pas tout à fait sûr de leur utilisation.
Voici un exemple de la façon dont mes données sont structurées:
Et c'est ce que j'ai trouvé jusqu'ici:
Sub RunCodeOnAllXLSFiles() Dim lCount As Long Dim wbResults As Workbook Dim wbCodeBook As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False On Error Resume Next Set wbCodeBook = ThisWorkbook With Application.FileSearch .NewSearch 'Change path to suit .LookIn = "C:\ahjualune\stuff" .FileType = msoFileTypeExcelWorkbooks 'Optional filter with wildcard .Filename = "*NAV*.xls*" If .Execute > 0 Then 'Workbooks in folder For lCount = 1 To .FoundFiles.Count 'Loop through all 'Open Workbook x and Set a Workbook variable to it Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) 'DO YOUR CODE HERE With ActiveSheet For Each c In .Range("B2:B90").Cells ' problematic place If c.Value = Then End If Next c End With wbResults.Close SaveChanges:=False Next lCount End If End With On Error GoTo 0 Application.ScreenUpdating = True Application.DisplayAlerts = True Application.EnableEvents = True End Sub
Si ce que vous cherchez, j'ai une idée.
Mettez tous les principaux types de produits dans la feuille 1 d'un classur.
À partir de la deuxième feuille, mettez chaque sous-produit sous une seule feuille. Utilisez des formules de feuilles excel pour multiplier et append des prix.
Enregistrez une macro pour copyr ce prix des sous-produits sur la feuille1.
stockez la source dans une variable
déterminez le prix de la ligne actuelle -add à une variable
lorsque la source change, placez les totaux dans une colonne à droite
peut-être utiliser quelque chose comme
range("A2").select dim sSource as ssortingng dim dPrice as decimal Dim dWeight as decimal dim dtotal as decimal Do Until ActiveCell = "" sSource = ActiveCell.Offset(0,8).value dprice = Activecell.offset(0,7).value Activecell.Offset(1,0).Select etc..... when your source changes write out to a column to the right...or something like that Loop
Désolé, pas le time d'écrire le code complet pour vous … mais essayer de vous faire suivre …