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 :

Copier coller différent, tableau sur un autre tableau


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Copier coller différent, tableau sur un autre tableau
    Bonjour,
    fichier joint pour plus d'explication.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim a, b, c, d, e, f As Integer
    a = 1
    b = 1
    c = 14
    d = 20
    e = 3
    f = 2
    Sheets("Feuil1").Select
    Range(Cells(a, b), Cells(c, d)).Copy
    Sheets("Feuil2").Select
    Cells(e, f).Select
    SELECTION.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    Serait-il possible que le "coller" se fasse sous la forme d'un autre tableau,
    je précise que la longueur du tableau à copier peut varier.
    En résumé, je voudrai copier la ("Feuil1") ou les N° occupent des lignes continues de 20N° sur la ("Feuil2") ou les N° occupent un tableau avec des lignes de 70N°.
    Dans la ("Feuil2") chaque N° doit être mis dans sa ligne et colonne respective.

    Fichier joint pour plus de compréhension.
    Dans l'attente un grand merci !
    cordialement

    Ps: étant donné mon niveau assez faible en VBA, je souhaiterai que la forme d'écriture du code que vous m'enverrez, soit le plus ressemblant aux lignes plus haut.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Points : 634
    Points
    634
    Par défaut
    Bonjour

    ci dessous un code qui donne le résultat demande

    Sub copiecoller()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sheets("Feuil2").Range(Cells(3, 2), Cells(16, 71)).ClearContents
    For ligne = 1 To 14
    For colonne = 1 To 20
    Sheets("Feuil2").Cells(ligne + 2, Sheets("Feuil1").Cells(ligne, colonne).Value + 1).Value = Sheets("Feuil1").Cells(ligne, colonne).Value
    Next
    Next
    End Sub
    Si les tableaux evoluent, il faudrait le modifier avec des variables.

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Points : 634
    Points
    634
    Par défaut
    Petite variante en utilisant une variable tableau

    ceci permet de copier les valeurs en une seule fois dans la feuille excel.

    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
     
    Option Explicit
    Option Base 1
     
     
    Sub copiecollertableau()
     
    Dim tableau(14, 70)
    Dim ligne As Integer
    Dim colonne As Integer
    Dim colonnedestination As Integer
     
    For ligne = 1 To 14
     
    For colonne = 1 To 20
    colonnedestination = Sheets("Feuil1").Cells(ligne, colonne).Value
    tableau(ligne, colonnedestination) = Sheets("Feuil1").Cells(ligne, colonne).Value
    Next
    Next
    Sheets("Feuil2").Range("B3:BS16") = tableau
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Merci infiniment, cela me fait avancé dans mon ocean d'ignorance !
    Citation Envoyé par a_diard Voir le message
    Bonjour

    ci dessous un code qui donne le résultat demande

    Sub copiecoller()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sheets("Feuil2").Range(Cells(3, 2), Cells(16, 71)).ClearContents
    For ligne = 1 To 14
    For colonne = 1 To 20
    Sheets("Feuil2").Cells(ligne + 2, Sheets("Feuil1").Cells(ligne, colonne).Value + 1).Value = Sheets("Feuil1").Cells(ligne, colonne).Value
    Next
    Next
    End Sub
    Si les tableaux evoluent, il faudrait le modifier avec des variables.

  5. #5
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Merci infiniment, cela me fait avancé dans mon ocean d'ignorance ! Ce code est pour moi "SUBLIME".
    Citation Envoyé par a_diard Voir le message
    Petite variante en utilisant une variable tableau

    ceci permet de copier les valeurs en une seule fois dans la feuille excel.

    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
     
    Option Explicit
    Option Base 1
     
     
    Sub copiecollertableau()
     
    Dim tableau(14, 70)
    Dim ligne As Integer
    Dim colonne As Integer
    Dim colonnedestination As Integer
     
    For ligne = 1 To 14
     
    For colonne = 1 To 20
    colonnedestination = Sheets("Feuil1").Cells(ligne, colonne).Value
    tableau(ligne, colonnedestination) = Sheets("Feuil1").Cells(ligne, colonne).Value
    Next
    Next
    Sheets("Feuil2").Range("B3:BS16") = tableau
    End Sub

  6. #6
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 3
    Points
    3
    Par défaut encore merci, problème de tableau
    RE, bonjour

    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
    Option Explicit
    Option Base 1
     
     
    Sub copiecollertableau()
     
    Dim tableau(14, 70)
    Dim ligne As Integer
    Dim colonne As Integer
    Dim colonnedestination As Integer
     
    For ligne = 1 To 14
     
    For colonne = 1 To 20
    colonnedestination = Sheets("Feuil1").Cells(ligne, colonne).Value
    tableau(ligne, colonnedestination) = Sheets("Feuil1").Cells(ligne, colonne).Value
    Next
    Next
    Sheets("Feuil2").Range("B3:BS16") = tableau
    End Sub
    je joins votre code,
    j'ai besoin de valeurs "tableau" que que je peux changer.
    le tableau peut avoir des lignes ou colonne différente.
    Ex: DIm tableau(28, 70),
    comment faire pour avoir un tableau que je peut régler avec des Variables
    il me semble qu'on appelle ça "un tableau dynamique"
    --------------
    j'ai utilise votre code avec une boucle copier coller du tableau de "feuil1" sur "Feuil2" c'est OK, et ensuite je change les N° du Tableau de "Feuil1" et coller sur une "feuil3" que j'ai créé ,
    le problème le code garde en mémoire le tableau de "feuil2" et le rajoute sur "feuil3" avec le nouveau tableau de "Feuil1".
    Comment vider la mémoire du tableau.
    Sans vouloir abusé, merci !
    cordialement

  7. #7
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Points : 634
    Points
    634
    Par défaut
    Bonjour

    Pour vider la variable tableau
    Pour créer une variable dynamique il ne faut pas la dimensionner au départ
    et utiliser redim pour définir sa taille.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim a As Integer, b As Integer
    a = 14
    b = 70
     
     
    Dim tableau
    ReDim tableau(a, b)

  8. #8
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2016
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par a_diard Voir le message
    Bonjour

    Pour vider la variable tableau
    Encore merci et bonne fin d'aprés midi .

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/07/2017, 12h39
  2. Réponses: 0
    Dernier message: 28/09/2015, 16h45
  3. [XL-2007] Excel 2007 Copier Coller une ligne vers une autre feuille
    Par fcjunic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/02/2013, 21h54
  4. Copier - coller ligne entière sur une autre feuille
    Par s.echeff dans le forum Excel
    Réponses: 1
    Dernier message: 10/04/2009, 17h35
  5. Copier/coller une table sur une autre fichier mdb
    Par berceker united dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 20h08

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