Faire une macro vba

Signaler
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020
-
Messages postés
7064
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 novembre 2020
-
Bonjour,

Je suis en train de créer un fichier excel patients.
Je voudrais que les lignes de A4 à A11 de mon onglet appelé "seance1" se copie automatiquement sur les autres onglets "seance2" " seance 3" " seance 4" ect...

Je ne maitrise pas du tout les macros. J'ai bien essayé en allant sur plusieurs forum mais je suis en échec

Merci pour votre aide

Bonne journée
Carine

4 réponses

Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743
bonjour, souhaites-tu apprendre les macros?
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020

Bonjour merci pour votre réponse. oui par la suite, je me pencherais dessus je suis assez autodidacte. Mais la c'est en urgence donc pas trop le temps.
>
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020

Bonjour

Pardon les lignes copiées vont aussi de A4 à A12 et oui 1 onglet vers tous les autres
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743 > Carine
suggestion:
Option Explicit
Sub carine()
Const nsource As String = "seance1"
Dim rsource As Range, fdest As Worksheet
Set rsource = Intersect(ThisWorkbook.Worksheets(nsource).UsedRange, ThisWorkbook.Worksheets(nsource).Range("4:11"))
For Each fdest In ThisWorkbook.Worksheets
    If fdest.Name <> nsource Then
        rsource.Copy fdest.Range(rsource.Address).Resize(rsource.Rows.Count, rsource.Columns.Column)
    End If
Next fdest
End Sub
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020
>
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020

Bonjour

Merci beaucoup pour votre réponse

Quand j'execute la formule il me met une ligne en erreur

Set rsource = Intersect(ThisWorkbook.Worksheets(nsource).UsedRange, ThisWorkbook.Worksheets(nsource).Range("4:11"))


merci beaucoup pour votre aide
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743 >
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020

quelle erreur?
les lignes à copier sont-elles vides?
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743 >
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020

es-tu certaine du nom de l'onglet source?
le cas échéant, adapte la ligne 4.
plus simple:
Option Explicit

Sub carine()
Const nsource As String = "seance1"
Dim rsource As Range, fdest As Worksheet
Set rsource = ThisWorkbook.Worksheets(nsource).Range("4:11")
For Each fdest In ThisWorkbook.Worksheets
    If fdest.Name <> nsource Then
        rsource.Copy fdest.Range("4:11")
    End If
Next fdest
End Sub
Messages postés
4
Date d'inscription
mercredi 18 novembre 2020
Statut
Membre
Dernière intervention
23 novembre 2020

Bonjour

Merci pour votre aide mais j'ai toujours un message d'erreur sur la ligne suivante

Set rsource = ThisWorkbook.Worksheets(nsource).Range("4:11")
Messages postés
13236
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743
pourquoi ne réponds-tu pas à mes questions?
quel message d'erreur?
es-tu certaine du nom de l'onglet source?
Messages postés
7064
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 novembre 2020
577
Bonjour,

c'est parce que la syntaxe n'est pas bonne.
Voir ceci:

https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.copy