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 :

Copie et transfert de données vers une autre feuille à l'aide d'un code VBA [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2016
    Messages : 1
    Par défaut Copie et transfert de données vers une autre feuille à l'aide d'un code VBA
    Bonjour à tous, soyez indulgents si je suis pas dans le bon forum, mais je suis nouveau et je bute sur un problème vba. Alors j'ai des données sur la feuille "OrderEntry" de moon classeur purchase et j'aimerais pouvoir transferer ces données sur la feuille Database du même classeur. Pour cela voila, j'ai écrit deux codes me permettant de copier des données et de les transposer sur une ligne bien spécifique de ma feuille "OrderEntry" et ensuite le transférer sur l'autre feuille.
    Mais je ne comprends toujours pas rien ne s'affiche sur la feuille Database.
    Voici un aperçu des codes utilisés:

    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
    Sub CopyData(X1, X2, Y1, Y2)
     
     ' Macro recorded 14/10/2017 by Basile Boni
     ' **Copies and transposes cell range (X1:X2) into range (Y1:Y2) and then
     ' **clears out the contents of cell range (X1:X2)
     ' **The “Screen Updating” feature hides macro actions from the user
     
        Application.ScreenUpdating = False
        Range("X1:X2").Select
        Selection.Copy
        Range("Y1:Y2").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
     
        Application.CutCopyMode = False
     
     ' **Clear the contents of cell range (X1:X2)
     
       Range("X1:X2").ClearContents
     
     
    End Sub
     
     
    Sub Copy_OrderEntry()
     
     ' Copy OrderEntry
     ' Macro recorded 14/10/2017 by Basile Boni
     
      ' ***Transfers user-input from the OrderEntry sheet into the Database sheet.
      ' ***Line 8 in the OrderEntry worksheet is arbitrarily chosen as a temporary
      ' ***transfer line (it is easier to move data as a single contiguous row)
     
      ' ***Transfer the Order number (cell H12), the Order date (cell I14), and the
      ' ***Supplier code number (cell D2) into cells B8,C8,D8
     
      CopyData X1:="H12", X2:="H12", Y1:="B8", Y2:="B8"
      CopyData X1:="I14", X2:="I14", Y1:="C8", Y2:="C8"
      CopyData X1:="D2", X2:="D2", Y1:="D8", Y2:="D8"
     
      ' ***Transpose and transfer the 8 product numbers (J26:J33) into cells (E8:L8)
      ' ***The number of product lines can be increased to 15 if so desired
     
      CopyData X1:="J26", X2:="J33", Y1:="E8", Y2:="L8"
     
      ' ***Transpose and transfer the 8 “No. of Units Ordered” (E26:E33) into cells (M8:T8)
      ' ***If the number of product lines is altered, also modify the two CopyData lines
     
      CopyData X1:="E26", X2:="E33", Y1:="M8", Y2:="T8"
     
      ' ***Transfer row 8 (“OrderEntry” sheet) to row 3 (“Database” worksheet)
     
      Worksheets("OrderEntry").Range("B8:T8").Cut Worksheets("Database").Range("A3")
     
      ' ***Insert a blank row in the database – to prevent overwriting the current order
     
      Worksheets("Database").Range("A3").EntireRow.Insert
     
    End Sub
    j'y ajoute en pièces jointe le fichier excel pour que vous m'aidiez. A vrai dire je fais mes débuts en VBA.

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    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
    J'ai juste regardé le début de ton code qui m'a fait dresser les cheveux sur la tête.

    Voici une réécriture de ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub CopyData(X1 As String, Y1 As String)
        Range(X1).Copy
        Range(Y1).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        Range(X1).ClearContents
    End Sub
    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
    Sub Copy_OrderEntry()
     
      CopyData("H12", "B8")
      CopyData("I14", "C8")
      CopyData("D2", "D8")
     
      CopyData("J26:J33", "E8:L8")
     
      CopyData("E26:E33", "M8:T8")
     
      ' ***Transfer row 8 (“OrderEntry” sheet) to row 3 (“Database” worksheet)
      Worksheets("OrderEntry").Range("B8:T8").Cut Worksheets("Database").Range("A3")
     
      ' ***Insert a blank row in the database – to prevent overwriting the current order
      Worksheets("Database").Range("A3").EntireRow.Insert
     
    End Sub

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

Discussions similaires

  1. transfert des données vers une autre fenêtre
    Par Lenovice54 dans le forum WinDev
    Réponses: 1
    Dernier message: 30/04/2017, 15h39
  2. [XL-2013] Macro extraction de données vers une autre feuille Excel
    Par ImBb2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/04/2015, 19h25
  3. Réponses: 12
    Dernier message: 17/02/2012, 22h51
  4. Macro :Transfert de données dans une autre feuille excel
    Par bakaouf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/07/2010, 14h14
  5. Réponses: 4
    Dernier message: 07/02/2009, 17h19

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