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 :

créer une macro copier/inserer particuliere [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 108
    Par défaut créer une macro copier/inserer particuliere
    Bonjour à tous
    Je suis débutant en VBA et souhaite sous EXCEL 2003 faire un copier / inserer un particulier voir le fichier joint.
    j'ai une base de donnée et je voudrais par une macro faire copier/inserer la selection dans n'importe quelle cellule de la colonne A
    Je joins un fichier excel avec un tableau avant et après l'exécusion de la macro
    A l'avance merci et bonne journée a tous
    Phiphi

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour,
    une proposition sur double clique dans une cellule de la colonne A, (si elle contient une valeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim c As Range
    Cancel = True
    If Intersect(Target, Range("A3:A11")) Is Nothing Then Exit Sub   'A3:A11 à adapter
     
    If Trim(Target.Value) <> "" Then
        Set c = Range("A37:A45").Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole) 'A37:A45 à adapter
        If Not c Is Nothing Then
            If c.Offset(-2, 0).Value <> "BASE" Then Range(c, c.Offset(1, 0)).EntireRow.Insert
            Range("A1:O2").Copy c.Offset(-2, 0)
        End If
    End If
     
    End Sub

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Philippe mercatog le forum
    je l'interprete différament que l' ami mercatog

    la plage (a37:o49) c'est le résultat a atteindre??? je peus me tromper
    en partant sur double clic d'une cellule sur la colonne A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Dim i As Long, z As String
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
    i = ActiveCell.Row - 1: z = ActiveCell.Address
    Rows(i + 1).Select
    Selection.Insert Shift:=xlDown
    Rows(i + 2).Select
    Selection.Insert Shift:=xlDown
    Range("a1:o2").Copy Destination:=Range(z)
    End If
    End Sub
    code a mettre dans l'evenement de ta feuille1 & non dans un module!!
    code trés basique a optimiser

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour Laetitia,
    ayant lu la proposition de Laetitia, je comprends peut être qu'il veut le résultat dans le même tableau; j'ai adapté mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
     
    If Trim(Target.Value) <> "" And Trim(Target.Value) <> "BASE" Then
        If Target.Offset(-2, 0).Value <> "BASE" Then Range(Target, Target.Offset(1, 0)).EntireRow.Insert
        Range("A1:O2").Copy Target.Offset(-2, 0)
    End If
    End Sub

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour le fil le forum si tu tiens a affecter une conbinaisons de touches
    j'ai pris ctrl+z attention il y a des conbinaisons deja attribuees dans excel il faut pas les prendres exemple ctrl+c ect....

    pour attribuer clic sur outils puis macro puis macros une fenetre s'ouvre tu clic sur ta macro2 pour l'exemple puis options tu verras ctrl+ tu mets z dans la casse puis ok.

    dans un module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro2()
    Dim i As Long
    i = ActiveCell.Row
    Range("A1:O2").Copy
    Rows(i).Insert Shift:=xlDown
    Application.CutCopyMode = False
    End Sub

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 108
    Par défaut Macro résolue
    Merci a tous vous avez résolu mon problème
    Bonne journée
    Phiphi

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

Discussions similaires

  1. Créer une macro qui reproduit vers le bas
    Par Jimy6000 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2008, 10h43
  2. Créer une macro sur Winedt
    Par Angerbode dans le forum Programmation (La)TeX avancée
    Réponses: 0
    Dernier message: 20/12/2007, 14h39
  3. Réponses: 5
    Dernier message: 23/10/2007, 14h56
  4. Créer une macro archivage
    Par Anaelody dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2007, 16h14
  5. Réponses: 8
    Dernier message: 09/01/2007, 16h30

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