IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour selectionner et copier une forme (cercle) dans une case [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut Macro pour selectionner et copier une forme (cercle) dans une case
    Bonjour à tous,

    Première fois que j'écris sur un forum, je suis en formation de cadre en maison de retraite. Je n'y connais rien en VBA, mais je vais apprendre ce code d'ici quelques mois, j'en ai trop besoin. D'ici là, je dois rapidement créer un tableau pour le suivi des soins dans la maison de retraite ou je travail. J'ai besoin d'un code qui entoure des cases spécifiques, qui correspondent à des soins à effectuer (je n'arrive pas à joindre le fichier Excel, alors je fais un print screen). Le code correspondant au bouton de commande noir est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub CommandButton6_Click()
    '
    ' ENTOURER Macro
    '
     
    '
        Range("C9").Select
        ActiveSheet.Paste
        Range("F9").Select
        ActiveSheet.Paste
        Range("I9").Select
        ActiveSheet.Paste
        Range("L9").Select
        ActiveSheet.Paste
        Range("O9").Select
        ActiveSheet.Paste
        Range("R9").Select
        ActiveSheet.Paste
        Range("U9").Select
        ActiveSheet.Paste
        Range("X9").Select
        ActiveSheet.Paste
        Range("AA9").Select
        ActiveSheet.Paste
        Range("AD9").Select
        ActiveSheet.Paste
        Range("AG9").Select
        ActiveSheet.Paste
        Range("AJ9").Select
        ActiveSheet.Paste
        Range("AM9").Select
        ActiveSheet.Paste
        Range("AP9").Select
        ActiveSheet.Paste
        Range("AS9").Select
        ActiveSheet.Paste
        Range("D9").Select
    End Sub
    Ceci doit permettre d'affecter un cercle dans les cases "matin" de chaque jour MAIS, cela ne fonctionne que si je fais "copier" avec la souris, avant d’exécuter la Macro. Il faudrait donc rajouter cette action en début de code et je n'y arrive pas, notamment parce que ce n'est pas du texte à copier, mais un objet (cercle).
    Possible ? Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("C9").Copy
    For i = 6 To 45 Step 3
        Cells(9, i).Select
        ActiveSheet.Paste
    Next i

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Et pourquoi ne pas tout simplement affecter un caractère spécial à ces cellules ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub CommandButton6_Click()  ' ENTOURER Macro
      Range("C9") = Chr(8)
      Range("F9") = Chr(8)
      Range("I9") = Chr(8)
      Range("L9") = Chr(8)
      Range("O9") = Chr(8)
      Range("R9") = Chr(8)
      Range("U9") = Chr(8)
      Range("X9") = Chr(8)
      Range("AA9") = Chr(8)
      Range("AD9") = Chr(8)
      Range("AG9") = Chr(8)
      Range("AJ9") = Chr(8)
      Range("AM9") = Chr(8)
      Range("AP9") = Chr(8)
      Range("AS9") = Chr(8)
      Range("D9") = Chr(8)
    End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut
    Bonjour,
    Daniel, lorsque je colle ton code au début du mien, il ne se passe rien.
    Defluc, cela me rempli les cases avec des caractère spéciaux, ce n'est pas ce que je demande, il faut que les cases soient entourées, comme dans la ligne exemple (ce que mon bouton noir fait d'ailleurs, dans la mesure ou je selectionne le cercle en b7 par exemple, puis clic droit copier).
    GRRR, j'aimerai bien vous envoyer ce fichier, ça fait 30 min que j'essai mais il est trop volumineux : 14 M, (y'a pas un site ou je peux le déposer ou vous pourriez le consulter si besoin).

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Mon code remplace le tien. Regarde le classeur joint; appuie sur le bouton.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut Bon d'accord
    ca fonctionne ton code, mais alors chose étrange, impossible de faire disparaitre les ronds que ton code colle, avec mon deuxième bouton de commande (qui fonctionne avec mon ancien code) Etonnant. Il reste encore une petite chose a corriger donc. Je vais essayer de comprendre comment fonctionne la drop box pour vous transmettre le fichier, je pense que ce serait plus parlant.En tout cas merci beaucoup pour cette aide déja precieuse, j'aurais jamais réussit à faire cela.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    on pourrait essayer de travailler la methode

    un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Sub met_des_rond_partout()
    Dim listrange As Variant
    listrange = Array("C9", "F9", "I9", "L9", "O9", "R9", "U9", "X9", "AA9", "AD9" _
    , "AG9", "AJ9", "AM9", "AP9", "AS9")
     
       For i = 0 To UBound(listrange)
       Set cel = Range(listrange(i))
        With Worksheets("Feuil1").Shapes.AddShape(msoShapeOval, cel.Left, cel.Top, cel.Width, cel.Height):  End With
       Next
    End Sub
    @daniel """select +paste"" allons!!? ca n'est pas toi ca ?
    Au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonsoir,

    Pour effacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Dim Sh As Shape
        For Each Sh In ActiveSheet.Shapes
            With Sh.TopLeftCell
                If .Row = 9 Then
                    If .Column Mod 3 = 0 And .Column > 2 And .Column <= 45 Then
                        Sh.Delete
                    End If
                End If
            End With
        Next Sh

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/03/2014, 14h55
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Importer une feuille excel dans une Form
    Par piepio dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/02/2007, 09h37
  4. [c#]Afficher une interface webservices dans une form
    Par jambono dans le forum Services Web
    Réponses: 1
    Dernier message: 21/10/2006, 11h30
  5. Réponses: 4
    Dernier message: 16/05/2006, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo