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 :

Problème avec PasteSpecial


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2017
    Messages : 40
    Par défaut Problème avec PasteSpecial
    Voila, j'aimerai copier en VBA une plage de cellules d'une feuille à une autre avec liaison et je n'y arrive pas de façon satisfaisante, voici mon code :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Option Explicit
     
    Const C_Parm As Long = 4
    Const C_Bas As Long = 4
     
    Dim Colonne As Long
    Dim Flag As Integer
    Dim Index_Ligne As Long
    Dim Ligne As Long
    Dim LigneDebut As Long
    Dim LigneFin As Long
    Dim Message As String
    Dim SommeLigne As Long
    Dim Valeur As Variant
    Dim Valeur2 As Variant
     
    Dim Pl_Test As Range
    Dim Ws As Worksheet
    Dim Feuille_Active As String
    Dim F_Index As Integer
    Dim Wo As Worksheet
     
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
        Valeur = Target.Value
        Ligne = Target.Row
        Colonne = Target.Column
     
        If Colonne = C_Parm Or Colonne = C_Bas Then
            Flag = 1
        Else
            Flag = 0
        End If
     
     
       If Colonne = 1 And Ligne = 1 Then
            Feuille_Active = ActiveSheet.Name
            Set Wo = ActiveSheet
            F_Index = ActiveSheet.Index
            Set Ws = Worksheets("Test")
            MsgBox "Feuille : " & Feuille_Active & " Index " & F_Index & " Name : " & Ws.Name & "    CodeName : " & Ws.CodeName
     
            Ws.Cells(65, 4).Value = 12 'OK ça marche
     
            'Wo.Range(Cells(1, 2)).Copy
            'Range(Cells(1, 2)).Copy
            'Wo.Range("A2").Copy
            'Ws.Range("E65").PasteSpecial Operation:=xlPasteSpecialOperationNone
     
            'Wo.Range("A2:D2").Copy
            'Ws.Range("E65").PasteSpecial Operation:=xlPasteSpecialOperationNone 'Copie juste les valeurs SANS liaison
     
            'Wo.Range("A2:D2").Copy
            'Ws.Range("E65").PasteSpecial ' Operation:=xlPasteSpecialOperationNone pas mieux mais fait bouger l'écran...
     
     
            Ws.Cells(65, 5).Value = "=Fev!A2" 'Fonctionne mais j'ai un paquet de cellules et j'aimerai optimiser...
     
        End If
     
    End Sub
    Les lignes 48 à 55 montrent mes essais infructueux qui copient uniquement les valeurs et comme je le dis en commentaire la ligne 58 celle-ci fonctionne mais en écrivant une ligne par cellule à Copier-Coller :

    - c'est long
    - les cellules à copier-coller peuvent être déterminées par des calculs.

    Merci par avance de votre aide, là je suis paumé...

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Je ne vois pas le besoin, mais bon... peut-être comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Wo.Range("A2:D2").Copy
    Ws.Range("E65").Paste Link:=True

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2017
    Messages : 40
    Par défaut
    Bonjour,

    Merci : c'est exactement ce que je cherchais !

    Citation Envoyé par parmi Voir le message
    Bonjour,

    Je ne vois pas le besoin, mais bon... peut-être comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Wo.Range("A2:D2").Copy
    Ws.Range("E65").Paste Link:=True
    Le besoin c'est qu'à terme "A2 : D2" et "E65" puissent puissent être les résultats de calculs, là c'était juste pour comprendre comment ça marchait... (Je débute et j’apprends en testant ce que je crois avoir compris et là visiblement j'étais loin du compte...).

    Merci encore !

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Stan_fr Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Ws.Cells(65, 5).Value = "=Fev!A2" 'Fonctionne mais j'ai un paquet de cellules et j'aimerai optimiser...
    comme je le dis en commentaire la ligne 58 celle-ci fonctionne mais en écrivant une ligne par cellule à Copier-Coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Ws.Range("E65:H65").Formula = "=Fev!A2"

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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