OVH Cloud OVH Cloud

macro - syntaxe

3 réponses
Avatar
chewi
Bonjour à tous.

Voilà, mon petit problème, je suis occupé de créer une macro qui doit me
transférer les données d'une plage de 3 cellules d'une feuille vers telle ou
telle plage d'une autre feuille du même classeur suivant la valeur d'une
autre cellule.

Seulement, j'essaie de faire des macros mais j'ai beaucoup de mal et
celle-ci n'est pas correcte, je ne m'en sors pas avec la syntaxe adéquate.

Quelqu'un pourrait-il m'aider à corriger cette macro et me dire tout ce qui
ne va pas?
J'ai notamment le message d'erreur 424: "Object required"

A la fin du code, il faut aussi que le contenu de la feuille1 soit effacer
mais pas la feuille elle-même.

Toute suggestion est la bienvenue

Je vous remercie d'avance.

Sub Exportation()

With Sheets("Feuil1")
If UCase(Left(.Range("I2"), 2)) = "AV" Then
If IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("D14")
.Range("E2").Copy Feuil2.Range("D8")
ElseIf Not IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("E14")
.Range("E2").Copy Feuil2.Range("E8")
End If
ElseIf UCase(Left(.Range("I2"), 2)) = "AP" Then
If .Range("E2") = Feuil2.Range("D8") Then
.Range("J2:J4").Copy Feuil2.Range("D21")
ElseIf .Range("E2") = Feuil2.Range("E8") Then
.Range("J2:J4").Copy Feuil2.Range("E21")
End If
End If
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With

End Sub

3 réponses

Avatar
Vincnet.
Réponse partielle... ton code supprime la feuille et non son contenu. Essaie
avec .Cells.ClearContents (en supprimant les deux lignes de DisplayAlerts et
le .Delete).
Pour le reste, pas le temps pour le moment, mais j'essaierai de repasser...
--
A+

V.



Bonjour à tous.

Voilà, mon petit problème, je suis occupé de créer une macro qui doit me
transférer les données d'une plage de 3 cellules d'une feuille vers telle ou
telle plage d'une autre feuille du même classeur suivant la valeur d'une
autre cellule.

Seulement, j'essaie de faire des macros mais j'ai beaucoup de mal et
celle-ci n'est pas correcte, je ne m'en sors pas avec la syntaxe adéquate.

Quelqu'un pourrait-il m'aider à corriger cette macro et me dire tout ce qui
ne va pas?
J'ai notamment le message d'erreur 424: "Object required"

A la fin du code, il faut aussi que le contenu de la feuille1 soit effacer
mais pas la feuille elle-même.

Toute suggestion est la bienvenue

Je vous remercie d'avance.

Sub Exportation()

With Sheets("Feuil1")
If UCase(Left(.Range("I2"), 2)) = "AV" Then
If IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("D14")
.Range("E2").Copy Feuil2.Range("D8")
ElseIf Not IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("E14")
.Range("E2").Copy Feuil2.Range("E8")
End If
ElseIf UCase(Left(.Range("I2"), 2)) = "AP" Then
If .Range("E2") = Feuil2.Range("D8") Then
.Range("J2:J4").Copy Feuil2.Range("D21")
ElseIf .Range("E2") = Feuil2.Range("E8") Then
.Range("J2:J4").Copy Feuil2.Range("E21")
End If
End If
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With

End Sub


Avatar
anonymousA
Bonjour,

"Object required" signifie que VBA couine parce que tu désignes un objet
qui lui manque dans sa collection existante (peut-être sheets("Feuil1")
ou la feuille dont le codename est Feuil2, ca c'est à toi de voir car
comme objets appelés je ne vois que ca).
Par ailleurs pour juste supprimer ce qu'il y a dans la feuille Feuil1 et
pas la détruire , suivre les conseils de Vincnet suffira.

A+

Bonjour à tous.

Voilà, mon petit problème, je suis occupé de créer une macro qui doit me
transférer les données d'une plage de 3 cellules d'une feuille vers telle ou
telle plage d'une autre feuille du même classeur suivant la valeur d'une
autre cellule.

Seulement, j'essaie de faire des macros mais j'ai beaucoup de mal et
celle-ci n'est pas correcte, je ne m'en sors pas avec la syntaxe adéquate.

Quelqu'un pourrait-il m'aider à corriger cette macro et me dire tout ce qui
ne va pas?
J'ai notamment le message d'erreur 424: "Object required"

A la fin du code, il faut aussi que le contenu de la feuille1 soit effacer
mais pas la feuille elle-même.

Toute suggestion est la bienvenue

Je vous remercie d'avance.

Sub Exportation()

With Sheets("Feuil1")
If UCase(Left(.Range("I2"), 2)) = "AV" Then
If IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("D14")
.Range("E2").Copy Feuil2.Range("D8")
ElseIf Not IsEmpty(Feuil2.Range("D14")) Then
.Range("J2:J4").Copy Feuil2.Range("E14")
.Range("E2").Copy Feuil2.Range("E8")
End If
ElseIf UCase(Left(.Range("I2"), 2)) = "AP" Then
If .Range("E2") = Feuil2.Range("D8") Then
.Range("J2:J4").Copy Feuil2.Range("D21")
ElseIf .Range("E2") = Feuil2.Range("E8") Then
.Range("J2:J4").Copy Feuil2.Range("E21")
End If
End If
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With

End Sub


Avatar
Mytå
Salut Chewi,

Pour l'erreur 424 remplace Feuil1 et Feuil2 par son équivalent anglais soit
Sheet1 et Sheet2.

Mytå