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 :

Transfert de données avec collage spéciale


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut Transfert de données avec collage spéciale
    Bonjour,

    Je voudrais transférer des données d'un onglet vers un autre en faisant un colage spéciale car les données de départ son des données calculées.
    La colonne est variable (change chaque mois) mais le lignes sont fixes (de 9 à 77).
    J'arrive à tranférer les données, mais en formule et non en valeur

    Si vous avez une idée...

    Fred
    excel 2000

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,
    Peux tu nous montrer un bout de code.

    En tout cas, tu peux utiliser l'enregistreur de macro qui va te montrer comment faire le collage spécial que tu veux.

    Pour s'affranchir de la plage il te suffit de te positionner sur le coin supérieur gauche dans ton onglet de destination.

    Aller un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Coller1()
        Worksheets("Feuil1").Range("A1:B3").Copy
        Worksheets("Feuil2").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    Merci pour ta réponse rapide.
    Suivant ton conseil, j'ai modifié mon code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim deb_c, fin_c
        Sheets("TRS annuelle euro").Select
     
        deb_c = Cells(9, 3)     ' = I9
        fin_c = Cells(10, 3)     ' = I77
     
        Worksheets("TRS mensuelle euro").Range(deb_c, fin_c).Copy
        Worksheets("TRS annuelle euro").Range(h9).PasteSpecial    paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

    Mais j'ai un problème au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TRS mensuelle euro").Range(deb_c, fin_c).Copy
    erreur d'éxécution 1004
    Ceci est peut être dû aux données dans RANGE mais je dois pouvoir modifier la colonne automatiquement.

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Cette syntaxe n'est pas correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TRS mensuelle euro").Range(deb_c, fin_c).Copy
    regarde sur le forum dans contribuez comment déterminer une plage de cellule

    Un proposition comme ça vite fait a adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro1()
    Dim Mycell As Range
    Dim i As Long, j As Long, k As Long, l As Long
    i = 9
    j = 3
    k = 10
    l = 3
    Set Mycell = Union(Cells(i, j), Cells(k, l))
     
    Worksheets("Feuil2").Range(Mycell.Address).Copy
    Worksheets("Feuil2").Range("A" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub
    ou plutot directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub x()
    Dim i As Long, j As Long, k As Long, l As Long
    i = 9
    j = 3
    k = 10
    l = 3
     
    Worksheets("Feuil2").Range(Cells(i, j).Address & ":" & Cells(k, l).Address).Copy
    Worksheets("Feuil2").Range("A" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    End Sub

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    Bonjour,

    Désolé pour être resté sans réponse, mais j'ai eu un problème de connexion au site et ensuite je suis parti en week end.

    Voilà, maintenant j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim i As Long, j As Long, k As Long, l As Long
    Sheets("TRS mensuelle euro").Select
    i = 9
    j = Cells(8, 4)
    k = 10
    l = 3
     
    Worksheets("TRS mensuelle euro").Range(Cells(i, j).Address & ":" & Cells(k, j).Address).Copy
    Worksheets("TRS annuelle euro").Range("H" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Mais lors de la compilation, j'ai toujours un problème au niveau des lignes Worksheets.
    J'ai un excel 2000 peut-être est le problème ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9
    Par défaut
    J'ai résolu mon problème avec le code ci-dessous. ce n'est peut être pas ce qu'il y a de mieux, mais cela fonctionne.
    Merci pour ton aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim deb, fin As String
     
    Sheets("TRS annuelle euro").Select
    deb = Range("i3")  ' début
    fin = Range("j3")   ' fin
     
     
    Sheets("TRS mensuelle euro").Select
        Range(deb & ":" & fin).Select
        Selection.Copy
     
    Sheets("TRS annuelle euro").Select
        Range("H9").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/12/2010, 10h10
  2. [Toutes versions] Pb de transfert de données avec un tableau croisé dynamique
    Par astridlet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2010, 16h39
  3. [XL-2003] transfert de données avec positionnement et recherche valeur
    Par domcoool dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/04/2010, 10h04
  4. Transfert de données avec SSIS
    Par Brolock dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/07/2009, 14h31

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