Macro Excel

Résolu/Fermé
EuhBN Messages postés 7 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 2 juillet 2015 - Modifié par crapoulou le 20/05/2015 à 09:40
EuhBN Messages postés 7 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 2 juillet 2015 - 20 mai 2015 à 10:32
Bonjour,

Bonjour,

J'ai besoin de votre aide, pour VBA et affecter une macro à un bouton.
L'affectation d'une macro à un bouton est ok mais là où je galère c'est pour faire fonctionner ma macro.
Config:
Excel 2010
les données se trouvent toutes dans un même classeur mais sur deux feuilles différentes.
En fait, je dois saisir des infos du type nom client dans la colonne A, conseiller client colonne B etc sur plus de 500 lignes (format de cellule en texte) dans un premier tableau de ma feuille 1.
Ce que j'aimerais c'est créer un bouton sur ma feuille 2, qui permette d'actualiser les noms saisis dans la feuille 1 (une sorte de copier/coller automatique en gros).
La première macro que j'ai faite, me copiait/collait toujours le meme nom de la feuille 1 et écrasait de fait en l'executant, les données précedement collées dans ma feuille 2.
Du coup j'ai essayé de reprendre du début mais je réalise à quel point j'ai besoin de votre aide..
Voici le code que j'ai enregistré en m'appuyant sur votre forum:

Sub actunom() 
Const nomFO = "mutuelle Santé" 
Const nomFD = "Tableau de bord Mutuelle santé" 
CellD = "A80" 
Sub copier() 
Dim lifin As Long 
lifin = Range("A" & Rows.Count).End(xlUp).Row 
Sheets(nomFO).Range("A78:H" & lifin).Copy Sheets(nomFD).Range(CellD) 

End Sub 


Mais cette fois ci, en l'executant sous Excel, ca m'indique "erreur de compilation,, End Sub attendu"
Merci d'avance pour votre aide précieuse

ElsaB


Configuration: Windows 7 / Internet Explorer 10.0

A voir également:

2 réponses

Excel-worker Messages postés 589 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 23 juillet 2015 58
Modifié par crapoulou le 20/05/2015 à 09:47
Bonjour,

Je m'y connais pas trop en VBA mais tu as oublié un end sub

Tu as déclaré deux fonctions : Sub actunom() et Sub copier()

Donc faut les fermer.

Sub actunom()
Const nomFO = "mutuelle Santé"
Const nomFD = "Tableau de bord Mutuelle santé"
CellD = "A80"
End Sub

Sub copier()
Dim lifin As Long
lifin = Range("A" & Rows.Count).End(xlUp).Row
Sheets(nomFO).Range("A78:H" & lifin).Copy Sheets(nomFD).Range(CellD)

End Sub


Cdlt
0
EuhBN Messages postés 7 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 2 juillet 2015
20 mai 2015 à 10:09
Bonjour,
je te remercie pour ta réponse, effectivement, le code erreur ne ressort plus :)
mais quand je clique sur mon fameux bouton auquel j'ai affecté ma macro, il ne se passe rien, comme si je n'avais rien mis derriere ce bouton..
d'où cette absence de réaction pourrait venir?
Je sais qu'à l'aveugle, ca ne doit pas être simple mais je tente quand même
0
EuhBN Messages postés 7 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 2 juillet 2015
Modifié par crapoulou le 20/05/2015 à 10:23
j'ai compris ma bétise, c'est comme si j'avais deux macro en une, pour un seul bouton.
Ces deux macros ne s'excecutent pas l'une après l'autre, j'ai du créer un second bouton pour effectuer la copie (alors que je souhaitais faire une selection de mes nouveaux enregistrement, les copier puis les coller dans ma feuille 2).
En affectant ma macro copier au second bouton, ca me met "erreur d'execution'9' l'indice n'appartient pas à la selection//
voici le code qu'il y a:
Sub actunom()
Const nomFO = "mutuelle Santé"
Const nomFD = "Tableau de bord Mutuelle santé"
CellD = "A80"
End Sub

Sub copier()
Dim lifin As Long
lifin = Range("A" & Rows.Count).End(xlUp).Row
Sheets(nomFO).Range("A78:H" & lifin).Copy Sheets(nomFD).Range(CellD)

End Sub


et la ligne Sheets(nomFO).Range("A78:H" & lifin).Copy Sheets(nomFD).Range(CellD) sort en erronée..
Merci bcp
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
Modifié par crapoulou le 20/05/2015 à 15:02
Bonjour,

Essaie cette macro cela et dis-nous si cela correspond a ton attente.
Option Explicit
Sub copier()
Dim WsS As Worksheet, WsC As Worksheet
Dim DerLig As Long
    Set WsS = Worksheets("mutuelle Santé") 'Feuille source
    Set WsC = Worksheets("Tableau de bord Mutuelle santé") 'Feuille cible
    DerLig = WsS.Range("A" & Rows.Count).End(xlUp).Row
    WsS.Range("A78:H" & DerLig).Copy WsC.Range("A80")
End Sub


A+
0
EuhBN Messages postés 7 Date d'inscription mercredi 20 mai 2015 Statut Membre Dernière intervention 2 juillet 2015
20 mai 2015 à 10:32
Merci Magicien Gyrus :)!!
vous êtes trop forts sur ce forum c'est exactement ça, et ca marche parfaitement!
bonne journée à vous
0