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

Erreur '438' - mauvaise formulation?

  • Initiateur de la discussion Initiateur de la discussion pnlop
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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+
 
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
 
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+
 
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

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+
 
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..
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
574
Réponses
5
Affichages
913
Réponses
4
Affichages
735
Réponses
15
Affichages
788
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…