eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 novembre 2008
-
25 juin 2008 à 15:20
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 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
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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")
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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.
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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é.
eastpeople
Messages postés105Date d'inscriptiondimanche 16 décembre 2007StatutMembreDernière intervention11 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)