Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Modification code vba

MASSJIPE

XLDnaute Impliqué
Bonjour le Forum
Besoin d'aide pour modifier le code vba suite à des ajouts de colonne supplémentaire j'ai fait des essais mais ca ne marche pas

VB:
Sub Panier()
    Dim plageProd As Range
    Dim compteur As Integer
    Sheets("Bon de commande").Select
    Range("A9:E34").Select
    Selection.ClearContents
    Range("A1").Select
    With Sheets("Catalogue")
        Set plageProd = .Range("A9:" & .[A65000].End(xlUp).Address) 'repère les cellules non-vides de la colonne A
    End With
    'nbArt = WorksheetFunction.CountIf(plageProd.Offset(, 3), ">0") 'combien de qté renseignées?
    compteur = 9 'puisque bon de Cmde démarre en ligne 9
    With Sheets("Bon de commande")
        For Each cell In plageProd.Offset(, 3)
            If cell Then
                .Range("A" & compteur).Resize(1, 8) = cell.Offset(0, -7).Resize(1, 8).Value
                .Range("I" & compteur) = .Range("G" & compteur) * .Range("H" & compteur)
                compteur = compteur + 1
            End If
        Next cell
        '.Range("E" & compteur) = WorksheetFunction.Sum(Range(.Cells(9, 5), .Cells(compteur, 5)))
    End With
End Sub
 

jmfmarques

XLDnaute Accro
Bonjour
Lorsque l'on écrit ou dit quelque-chose (en code ou non), ce que l'on écrit ou dit doit avoir une signification précise au moins pour celui qui écrit ou dit la chose concernée.
Question, donc : quelle est pour toi (au moins pour toi) la signification de ce que tu as écrit là :
VB:
If cell Then
 

MASSJIPE

XLDnaute Impliqué
Bonjour
c'est vrai c'est le calcul qui ne vas pas pour les colonnes G H I je pense que c'est dans cette partie du code
VB:
.Range("A" & compteur).Resize(1, 8) = cell.Offset(0, -7).Resize(1, 8).Value
                .Range("I" & compteur) = .Range("G" & compteur) * .Range("H" & compteur)
                compteur = compteur + 1
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
Set plageProd = .Range("A9:" & .[A65000].End(xlUp).Address)
donc la colonne 1


For Each cell In plageProd.Offset(, 3)
If cell Then
.Range("A" & compteur).Resize(1, 8) = cell.Offset(0, -7).Resize(1, 8).Value
.Range("I" & compteur) = .Range("G" & compteur) * .Range("H" & compteur)
compteur = compteur + 1
End If
Next cell

n'y a t il pas un soucis déjà ici avec l'offset
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…