AIDE sur macro

Résolu/Fermé
corto76600 - 13 août 2010 à 14:24
 corto76600 - 16 août 2010 à 14:29
Bonjour,

J'ai besoin de votre aide je voudrais créer une macro qui copie une cellule faire un copiage spéciale dans une autre cellule en récupérant juste la valeur de la cellule d'origine et pouvoir exécuter cette macro sur plusiuer cellule les unes en dessous des autres sans effacer se qui à été saisi au fur à mesure .... merci d'avance je suis perdu!!!!!



A voir également:

12 réponses

Utilisateur anonyme
13 août 2010 à 18:14
Macro à affecter à un bouton :

Sub Collage Spécial()
On Error GoTo Err:
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Exit Sub
Err:
    MsgBox "Rien à copier", vbCritical
End Sub


Fonctionnement :

Copie la cellule (Ctrl + C), puis va dans la cellule où tu veux copier la valeur et clique sur le bouton.

PS: La réponse est pour Excel (ce n'était pas précisé dans la question...mais Macro + cellule, ça doit être ça)
0
Tout d'abord merci d'avoir pri le tps de me répondre. Est-il possible de concevoir une macro qui enregistreré sans la manip ctrl+c. J'explique se que je voudrai pouvoir faire.

J'ai 8 cellule à copié sur une feuille que j'ai appelé "calcul des temps perso" les données sont vouées à évoluer un grand nombre de fois ainsi je souhaiterai pouvoir enregistrer des que je clik sur un bouton ou meme sans bouton sur une autre feuille appelé "controlpannel" et ainsi construire un tableau. Je suis parti sur une macro qui fait la manip suivante :

Range("G3:N3").Select
Selection.Copy
Sheets("Control pannel").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Pour la suite je n'ai aucune idée auriez vous une idée ou une autre méthode. Merci d'avance.
0
Utilisateur anonyme
14 août 2010 à 09:39
Oui, il faut un peu dépasser l'enregistreur de macros...
Voilà la procédure (juste changer le nom de la feuille qui contient les données à copier, j'ai laissé Feuil1 ne connaissant pas le nom effectif) :

Sub ReporterValeurs()
    Dim FeuilBase As String, FeuilDest As String, PlageBase As Range, _
    ColDest As Integer, PlageDest As Range, LigneDest As Long
    
    'Nom de la feuille où se trouve les données à copier
    FeuilBase = "Feuil1"    '(nom à changer)
    
    'cellules où se trouve les valeurs à copier
    Set PlageBase = Sheets(FeuilBase).Range("G3:N3")
    
    'Nom de la feuille qui va recevoir les valeurs
    FeuilDest = "Control pannel"
    'numéro de la 1ère Colonne dans laquelle on met les valeurs copiées
    ColDest = 2  '(=colonne B)
    
    
    'détermine la première cellule vide dans la feuille de destination
    If Sheets(FeuilDest).Cells(2, ColDest).Value = "" Then
        LigneDest = IIf(Sheets(FeuilDest).Cells(1, ColDest).Value = "", 1, 2)
    Else
        LigneDest = Sheets(FeuilDest).Cells("1", ColDest).End(xlDown).Row + 1
    End If
    
    'définit les cellules de destination
    Set PlageDest = Sheets(FeuilDest).Range(Cells(LigneDest, ColDest), Cells(LigneDest, ColDest + 7))
    
    PlageDest.Value = PlageBase.Value
    
    
End Sub
0
Bonjour,
J'aurais jamis réussit à arriver jusque là sans vous merci reste juste un petit bug à ce niveau là lorsque je lance la macro dont je ne trouve pa la solution
Set PlageDest = Sheets(FeuilDest).Range(Cells(LigneDest, ColDest), Cells(LigneDest, ColDest + 7))

Merci bcp.
0

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

Posez votre question
Utilisateur anonyme
14 août 2010 à 18:18
Je n'ai pas d'erreur en testant ... Y-a-t'il un message ?
0
Erreur d'execution "9"
l'indicde n'appartient pas à la sélection

Cela vous dit quelque chose?
0
Utilisateur anonyme
15 août 2010 à 07:22
Oui, c'est sûrement le nom de la feuille de destination qui n'est pas correct. Il faut vérifier dans la ligne plus haut :

FeuilDest = "Control pannel"
0
Bonsoir,

J'ai encore besoin de votre aide sa ne marche toujours pas pour moi?

Voilà textuellement ce que j'ai copié et effecté à un bouton qui se trouve sur la feuille "calcul des temps perso" ou se trouve les données que je voudrais copié; svp comment je dois procéder....merci beaucoup
0
Sub ReporterValeurs()
Dim FeuilBase As String, FeuilDest As String, PlageBase As Range, _
ColDest As Integer, PlageDest As Range, LigneDest As Long

'Nom de la feuille où se trouve les données à copier
FeuilBase = "Calcul des temps perso" '(nom à changer)

'cellules où se trouve les valeurs à copier
Set PlageBase = Sheets(FeuilBase).Range("G3:N3")

'Nom de la feuille qui va recevoir les valeurs
FeuilDest = "Control pannel"
'numéro de la 1ère Colonne dans laquelle on met les valeurs copiées
ColDest = 2 '(=colonne B)


'détermine la première cellule vide dans la feuille de destination
If Sheets(FeuilDest).Cells(2, ColDest).Value = "" Then
LigneDest = IIf(Sheets(FeuilDest).Cells(1, ColDest).Value = "", 1, 2)
Else
LigneDest = Sheets(FeuilDest).Cells("1", ColDest).End(xlDown).Row + 1
End If

'définit les cellules de destination
Set PlageDest = Sheets(FeuilDest).Range(Cells(LigneDest, ColDest), Cells(LigneDest, ColDest + 7))

PlageDest.Value = PlageBase.Value


End Sub
0
Bonjour,

Vous serez t'il possible de m'en voyer un fichier avec la macro fonctionnelle car je n'arrive pas du tout à comprendre ce qui bloque. Merci

COrdialement
0
Utilisateur anonyme
16 août 2010 à 13:37
Ce qui bloque ce sont les noms des onglets à rallonge avec des espaces.

Essayez de les simplifer (par exemple juste Calcul et Control) et de modifier la macro en conséquence...
0
Merci bcp pour vos réponses et votre patience la macro fonctionne. Nicolas
0