Procédure
donel05y040
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
salut
je suis étudiant et m' intéresse beaucoup à la programmation. Depuis un certains temps j'étudie le VBA d'excel pour me vaciliter le travail à faire sur un projet .
En fet jai un souci, il concerne les procédures. je voudrais écrire une procédure qui copie la valeur d'une cellule d'une feuille et la colle dans une cellule d'une autre feuille. Donc une procédure avec 4 arguments. Voici la procédure écrite dans le visual basic:
Private Sub copier_coller(feuille1 As Worksheet, cellule1 As Range, feuille2 As Worksheet, cellule2 As Range)
Sheets("feuille1").Select
Range("cellule1").Select
Selection.Copy
Sheets("feuille2").Select
Range("cellule2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Mais en faisant appel à cette procédure dans une macro ou je voulais qu'elle copie le contenu de la cellule 1 de la "feuille stock" dans la cellule 1 de la "feuille marchandise". voici le code de la macro:
Sub coller_valeur()
copier_coller ("stock","A1", "marchandise", "A1")
End Sub
lorsque j'exécute cette macro on me fait comprendre qu'il s'agit d'une erreur de compilation.
Depuis je cherche à trouver la solution en vain! c'est pourquoi j'en appelle à votre expertise pour bien vouloir m'aider!
merci d'avance
je suis étudiant et m' intéresse beaucoup à la programmation. Depuis un certains temps j'étudie le VBA d'excel pour me vaciliter le travail à faire sur un projet .
En fet jai un souci, il concerne les procédures. je voudrais écrire une procédure qui copie la valeur d'une cellule d'une feuille et la colle dans une cellule d'une autre feuille. Donc une procédure avec 4 arguments. Voici la procédure écrite dans le visual basic:
Private Sub copier_coller(feuille1 As Worksheet, cellule1 As Range, feuille2 As Worksheet, cellule2 As Range)
Sheets("feuille1").Select
Range("cellule1").Select
Selection.Copy
Sheets("feuille2").Select
Range("cellule2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Mais en faisant appel à cette procédure dans une macro ou je voulais qu'elle copie le contenu de la cellule 1 de la "feuille stock" dans la cellule 1 de la "feuille marchandise". voici le code de la macro:
Sub coller_valeur()
copier_coller ("stock","A1", "marchandise", "A1")
End Sub
lorsque j'exécute cette macro on me fait comprendre qu'il s'agit d'une erreur de compilation.
Depuis je cherche à trouver la solution en vain! c'est pourquoi j'en appelle à votre expertise pour bien vouloir m'aider!
merci d'avance
A voir également:
- Procédure
- Procédure de frigo vide ✓ - Forum Consommation & Internet
- Le point d'entree de procedure est introuvable kernel32 dll ✓ - Forum Windows
- Le point d'entrée de procédure iswow64process2 est introuvable - Forum Windows
- Le point d'entrée de procédure eventsetinformation est introuvable advapi32.dll - Forum Windows
- Le point d'entrée de procédure est introuvable dans la bibliothèque de liens dynamiques ✓ - Forum Logiciels
3 réponses
Bonjour,
ira mieux comme ceci:
ira mieux comme ceci:
Sub coller_valeur() Call copier_coller("stock", "A1", "marchandise", "A1") End Sub Private Sub copier_coller(feuille1 As String, cellule1 As String, feuille2 As String, cellule2 As String) Sheets(feuille2).Range(cellule2) = Sheets(feuille1).Range(cellule1) End Sub
Bonjour Donel, bonjour le forum,
Évite autant que tu le peux les Select inutiles qui ne font que ralentir l'exécution du code !...
Essaie comme ça :
Évite autant que tu le peux les Select inutiles qui ne font que ralentir l'exécution du code !...
Essaie comme ça :
Private Sub copier_coller(feuille1 As String, cellule1 As String, feuille2 As String, cellule2 As String) Sheets(feuille1).Range(cellule1).Copy Sheets(feuille2).Range(cellule2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub Sub coller_valeur() Call copier_coller("stock", "A1", "marchandise", "A1") Application.CutCopyMode = False End Sub
Bonjour
Pas mal d'erreurs dans les types des objets manipulés
1. Lorsque tu appelles ta procedure
copier_coller ("stock","A1", "marchandise", "A1")
les arguments sont de type string et non worksheet ou range comme dans sa déclaration (tu passes les noms des objets et non les objets eux mêmes)
2. D'autre part, dans le code de la procedure copier_coller
Sheets("feuille1").select le nom de la feuille sera "feuille1" à chaque appel quelque soit l'argument passé
etc ...
3. Pour faire la même chose simplement
Cdlmnt
Pas mal d'erreurs dans les types des objets manipulés
1. Lorsque tu appelles ta procedure
copier_coller ("stock","A1", "marchandise", "A1")
les arguments sont de type string et non worksheet ou range comme dans sa déclaration (tu passes les noms des objets et non les objets eux mêmes)
2. D'autre part, dans le code de la procedure copier_coller
Sheets("feuille1").select le nom de la feuille sera "feuille1" à chaque appel quelque soit l'argument passé
etc ...
3. Pour faire la même chose simplement
Sub copie_colle(F1 As String, C1 As String, F2 As String, C2 As String) Sheets(F1).Range(C1).Copy Sheets(F2).Range(C2) End Sub Private Sub CommandButton1_Click() Call copie_colle("Feuil1", "A2", "Feuil2", "B5") End Sub
Cdlmnt