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
1592636225607.png

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 :rolleyes:
 

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT