Erreur 438 ??

Résolu
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 25 juin 2008 à 15:20
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 25 juin 2008 à 16:52
Bonjour, sur ce code

Private Sub OK_Click()
Dim Recherche As Range
    Set Recherche = Sheets("Abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)
    If type_dact = "" Then
        erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")
    Exit Sub
    ElseIf Not Recherche Is Nothing Then
        Range("A" & Recherche.Row).Copy
        Sheets("calculs").Range("B2").Paste ------------Sur cette ligne il me met l'erreur 438
        Range("B" & Recherche.Row & ":F" & Recherche.Row).Copy
        Sheets("calculs").Range("B4").Paste
    End If
        Unload UTIL
        REPONSE.Show
End Sub

Avec le texte suivant :

Propriété ou méthode non gérée par cet objet.
Je ne sais pas ce que cela veut dire.
Merci de votre aide

12 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 juin 2008 à 15:42
Salut,

effectivement la methode paste ne fonctionne pas comme ça. Je te donne la bonne methode pour info mais je te la deconseil pour ce que tu veux faire. tu trouveras plus bas la solution que je te conseil d'utiliser.

Private Sub OK_Click()
Dim Recherche As Range
    Set Recherche = Sheets("Abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)
    If type_dact = "" Then
        erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")
    Exit Sub
    ElseIf Not Recherche Is Nothing Then
        Range("A" & Recherche.Row).Copy
        ActiveSheet.Paste Destination:=Sheets("calculs").Range("B2")
        Range("B" & Recherche.Row & ":F" & Recherche.Row).Copy
        ActiveSheet.Paste Destination:=Sheets("calculs").Range("B4").Paste
    End If
        Unload UTIL
        REPONSE.Show
End Sub

Maintenant la methode conseillée :

Private Sub OK_Click()

Dim Recherche As Range

    Set Recherche = Sheets("Abonnements").Cells.Find(type_dact.Text, LookIn:=xlValues, LookAt:=xlWhole)

    If type_dact = "" Then

        erreur = MsgBox("Le choix d'une activité est obligatoire", vbOKOnly + vbCritical, "OUPS")

    Exit Sub

    ElseIf Not Recherche Is Nothing Then

        Sheets("calculs").Range("B2").Value = Range("A" & Recherche.Row).Value

        Sheets("calculs").Range("B4").Value = Range("B" & Recherche.Row & ":F" & Recherche.Row).value

    End If

        Unload UTIL

        REPONSE.Show

End Sub

A+
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 juin 2008 à 16:00
oups oui j'ai pas bien regardé

remplace : Sheets("calculs").Range("B4").Value = Range("B" & Recherche.Row & ":F" & Recherche.Row).value

par : Sheets("calculs").Range("B4:F4").Value = Range("B" & Recherche.Row & ":F" & Recherche.Row).value
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juin 2008 à 15:35
Salut
Parce que ce ne doit pas être la bonne méthode.
N'y connaissant rien moi même, j'ai ouvert Excel, enregistré un macro pendant que je faisais un copier/coller entre deux colonnes et il m'a fourni ce code :
    Range("A2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("calculs").Select
    Range("B2").Select
    ActiveSheet.Paste

Tu aurasi pu faire la même chose pour vérifier ta syntaxe ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 15:55
Pourquoi me déconseilles tuta première méthode, elle marche, tandis que la deuxième me copie que la premiere case de la ligne B??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 juin 2008 à 15:56
...

j'ai oublier de preciser que la methode copy/paste est interressante dans le cas ou tu veux copier tout ce qui concerne la cellule source, c'est a dire le format, format conditionnel, valeur formule enfin bref tout ce qui peut etre lié a la cellule. Par contre la deuxieme methode copie uniquement la valeur.

Jack : ta methode fonctionne mais je doit dire que je me bat pour que les gents utilisent des solutions sans select qui ralentit l'execution des macro.
En faite il existe toujours une solution qui permet de ne pas faire de selection soit par une construction opposé a l'enregistreur de macro(proche du VB6) ou tu consideres tes cellules ou tes tableau comme des variable ou soit par une synthaxe adappter comme la methode copy/paste que je propose.

A+
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 16:02
D'accord bigfish_le vrai mais dans ta deuxième solution il ne copi pa la ligne entière mais seulement la premiere case.
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 16:07
Merci bigfish_le vrai, je t'explique mon gros problème je dois rendre mon projet vendredi et j'ai encore 3 ou 4 choses qui ne marche pa ou qui disfonctionnement, et il faut un peu connaitre le projet pour comprendre. Est ce qu'il serait possible que je t'envoi mon projet pour que tu y jette un oeil svp tu me sauverai la vie car je ne sais plus commen faire.
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 16:25
bigfish pleaseeeeeeeeee, jten suppli j'ai compté il me reste 3problèmes tu devrais en avoir pour 5min.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juin 2008 à 16:31
Re
Eastpeople : Pas la peine de pleurer :
- Tu n'avais qu'à t'y prendre plus tôt, on n'est pas un service d'urgence
- Si tu as d'autres questions, pose-les sur le forum en donnant suffisemment de détails et d'explications.
  Pas la peine de copier/coller tout ton code, ça découragera les membres de bonne volonté.
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 16:34
Alors Jack c'est sympa de me répondre aussi gentiment, et quand je ne mets pas tout mon code on me dit qu'il faut que je mette tout mon code alors je sais pas moi, et je mis suis pris quand j'ai eu le temps.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 juin 2008 à 16:47
Ce que je veux dire, c'est que la notion d'urgence n'a aucun effet sur les réponses, ça a même tendance à agacer.
Si, tu peux copier du code, mais ne mets que le strict nécessaire.
Approfondis tes explications en détaillant ce que tu essayes de faire, ce qui ne semble pas marcher, les codes et message d'erreur que tu rencontres, etc ... afin que le membre sache de quoi il retourne sans avoir besoin d'éplucher le code.
Reprécise bien aussi à chaque fois dans quel enironnement tu travailles (Excel) et quelle version.

Et, règle importante : Ne pose qu'un seul sujet par question, sinon les réponses seront confuses et tu perdras du temps.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008
25 juin 2008 à 16:52
D'accord j'ai compris le message merci jack.
0
Rejoignez-nous