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

Erreur '438' - mauvaise formulation?

pnlop

XLDnaute Occasionnel
Bonjour le forum,

Je bloque toujours sur une partie de mon code... Je ne comprends pas l'erreur 438 qu'il m'indique...

Code:
Dim c As Range

For Each c In Sheets("bon commande").Range("articles")

If c.Value > 0 Then
    
    Worksheets("commande en cours").Range("A65536").End(xlUp).Offset(1, 0) = Worksheets("bon commande").Range("B5").Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 1) = Worksheets("bon commande").Range("A8").Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 2) = Worksheets("bon commande").Range("B8").Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 3) = Worksheets("bon commande").Range("C5").Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 4) = Worksheets("bon commande").c.Value [I]'erreur 438'[/I]
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 5) = Worksheets("bon commande").c.Value.Offset(0, -1).Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 6) = Worksheets("bon commande").c.Value.Offset(0, 2).Value
 
 End If
Next

Quelqu'un pourrait-il m'aider, car je n'avance pas du tout...
Merci!
Pnlop
 

vgendron

XLDnaute Barbatruc
Re : Erreur '438' - mauvaise formulation?

Bonjour,

essaie comme ceci..??

Code:
Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 4) = c.Value [I]'erreur 438'[/I]
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 5) = c.Value
    Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 6) = c.Value

Sinon, avec ton fichier, ca pourrait nous éclaircir
 
G

Guest

Guest
Re : Erreur '438' - mauvaise formulation?

Bonjour,

Peut-être (mais va savoir????? suis pas devin):
Code:
    For Each c In Sheets("bon commande").Range("articles")
        If c.Value > 0 Then
            With Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp)
                .Offset(1, 0) = Worksheets("bon commande").Range("B5").Value
                .Offset(1, 1) = Worksheets("bon commande").Range("A8").Value
                .Offset(1, 2) = Worksheets("bon commande").Range("B8").Value
                .Offset(1, 3) = Worksheets("bon commande").Range("C5").Value
                .Offset(1, 4) = c.Value
                .Offset(1, 5) = c.Offset(0, -1).Value
                .Offset(1, 6) = c.Offset(0, 2).Value
            End With
        End If
    Next

A+
 

mécano41

XLDnaute Accro
Re : Erreur '438' - mauvaise formulation?

Bonjour,

Probablement ainsi pour les 3 dernières lignes...

Code:
Worksheets("commande en cours").Range("A" & Rows.Count).End(xlUp).Offset(0, 5) = Worksheets("bon commande").c.Offset(0, -1).Value

EDIT : grillé! nous sommes donc d'accord!

Cordialement
 
G

Guest

Guest
Re : Erreur '438' - mauvaise formulation?

Re,

@mécano
=Worksheets("bon commande").c.Offset(0, -1).Value
La variable objet c contient déjà son parent (worksheet) donc
= c.offset(0,-1).value
suffit et ne posera pas de problème

A+
 

pnlop

XLDnaute Occasionnel
Re : Erreur '438' - mauvaise formulation?

Merci pour vos propositions...
Que j'ai testée, mais le problème se décale...
J'ai mis mon fichier (vidé de ses données..) pour que ce soit plus clair..
Le code est dans l'userForm4...
Cela dit, je doit être myro, mais je vois pas de différence entre vos corrections et mon code?!?
 

Pièces jointes

  • exemple pnlop.xlsm
    182.3 KB · Affichages: 43
  • exemple pnlop.xlsm
    182.3 KB · Affichages: 58
  • exemple pnlop.xlsm
    182.3 KB · Affichages: 51

pnlop

XLDnaute Occasionnel
Re : Erreur '438' - mauvaise formulation?

Sorry, j'ai retrouvé mes lunettes et corrigé! Ca fonctionne! Me reste l'histoire des checkbox à régler....
Parceque ça ça fonctionne pas! Jamais fini!!!
 
G

Guest

Guest
Re : Erreur '438' - mauvaise formulation?

Re,

Ceci fonctionne chez moi pour peu qu'il y ait les . devant les Cells. Lire un peu l'aide excel sur With
i = 2 au début sinon la ligne de titre aura un checkbox.

Autre méthode que les checkBox: mettre des coches (ü) police Wingdings

Code:
Sub ttt()
    With Worksheets("commande en cours")
        Dim t, l, i
        i = 1
        Do While .Cells(i, 1).Value <> ""

            t = .Cells(i, 8).Top
            l = .Cells(i, 8).Left
            .OLEObjects.Add ClassType:="Forms.CheckBox.1", Link:=False, _
                            DisplayAsIcon:=False, Left:=l + 15, Top:=t + 4, Width:=10, Height:=10
            i = i + 1
        Loop
    End With
End Sub

A+
 

pnlop

XLDnaute Occasionnel
Re : Erreur '438' - mauvaise formulation?

Merci Hasco,
J'ai repris ton code (qui ressemblait au mien... suis pas si nulle!!!) mais l'ai mis à un autre endroit dans mon projet et cela fonctionne mieux ainsi..
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…