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 :

Transférer des données d'une feuille à une autre du même classeur.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Par défaut Transférer des données d'une feuille à une autre du même classeur.
    Bonjour alors voila j ai une première feuille Excel dont je transfert les données dans une autre feuilles grâce a la macro suivante:

    '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range("A5:J21").Select 'selection
        Selection.Cut 'coupe
        Sheets("Visite année 2009").Select 'envois vers une autre feuille
        Range("A5:J23").Select 'selection
        ActiveSheet.Paste 'colle
    Le problème c'est que j aimerai qu'a chaque fois que je clik sur le bouton qu' il n'écrase pas les autre donnée qui se trouve sur la 2ème feuille mais les mettre a la suite.

    Et aussi qu'a chaque fois que je clik sur le bouton qu'il sélectionne toutes les cellules utilisée de la 1 ère feuille. Car se nombre peut varié en longueur mais pas en largeur.

    Merci d'avance .

    Donc j aurai besoin de savoir comment sélectionne toutes les cellules utilisé(non vide) de la 1 ère feuille pour ensuite les coller a la suite des données déjà présente sur la 2 ème feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(A65536).End(xlUp).Select

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir et mes meilleurs voeux pour cette nouvelle année.

    Je pense que le code suivant répond à tes attentes
    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
    Option Explicit
     
    Sub Essai()
     
    Dim Wksh1 As Worksheet
    Dim Wksh2 As Worksheet
    Dim Derli1 As Long
    Dim Derli2 As Long
     
    Set Wksh1 = ActiveSheet 'Sheets("Feuil1")
    Set Wksh2 = Sheets("Visite année 2009")
     
    'recherche de la dernière ligne de la feuille active
    Derli1 = Wksh1.Columns(1).Find("*", , , , , xlPrevious).Row
    ' recherche de la première ligne vide de la feuille "Visite année 2009"
    On Error Resume Next
    Derli2 = Wksh2.Columns(1).Find("*", , , , , xlPrevious).Row + 1
    'condition pour commencer à la ligne 5
    If Derli2 < 5 Then Derli2 = 5
    On Error GoTo 0
    'copies des données
    Wksh1.Range("A5:J" & Derli1).Copy Wksh2.Range("a" & Derli2)
    End Sub
    cordialement

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Par défaut
    ok merci pour ton code, je vais essayé, c est la première fois que je fais une macro 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
        Dim int_dern_cell As Integer
        
        int_dern_cell = Sheets(1).Cells(65535, 10).End(xlUp)(2).Row 'Détecte la dernière cellule vide de la colonne
        MsgBox "la cellule vide est la : " & int_dern_cell
        Range(("A5"), int_dern_cell-1).Select 'selectionne les cellules. 
    LE PROBLEME EST ICI JE N ARRIVE PAR RENTRER LE PARAMÊTRE de la colonne peut etre une problème de variable???
        
        
        Selection.Copy 'copie les cellules.
        Sheets("Visite année 2009").Select 'passe a la feuille Visite...
        [A65536].Select 'Se positionner sur la dernière cellule vide de la colonne.
        Selection.End(xlUp)(2).Select
        ActiveSheet.Paste 'colle les cellues.
        Sheets("Journée en cours").Select 'passe a la feuille journée en cours...
        Range("A5:J1500").Select 'selectionne les cellules.
        Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents 'Effacer le contenu des cellules
        Range("A5").Select

    Aurais tu un bon lien ou tuto pour moi apprend le vba pour excel?

    Merci d avance

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Par défaut
    voila ou j'en suis

    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
     
     
    Sub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 31/12/2008 par neotof
    '
        Dim lng_dern_cell As Integer
        Dim str_der_coll As String
     
        lng_dern_cell = Sheets(1).Cells(65535, 10).End(xlUp)(2).Row 'Détecte la dernière cellule vide de la colonne
        MsgBox "la cellule vide est la : " & lng_dern_cell
        str_der_coll = "J" & Str(lng_dern_cell - 1)
        Range("A5" & ":" & str_der_coll).Select 'selectionne les cellules.
        LE PROBLEME EST LA 
     
        Selection.Copy 'copie les cellules.
        Sheets("Visite année 2009").Select 'passe a la feuille Visite...
        [A65536].Select 'Se positionner sur la dernière cellule vide de la colonne.
        Selection.End(xlUp)(2).Select
        ActiveSheet.Paste 'colle les cellues.
        Sheets("Journée en cours").Select 'passe a la feuille journée en cours...
        Range("A5:J1500").Select 'selectionne les cellules.
        Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents 'Effacer le contenu des cellules
        Range("A5").Select
     
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_der_coll = "J" & Str(lng_dern_cell - 1)
    Dans cette ligne la fonction Str est non seulement inutile mais aussi non adaptée.

    Regardez dans l'aide VBA et vous verrez que le nombre converti en texte comporte un espace devant le 1er chiffre si ce nombre est positif.

    Ce code fonctionne très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_der_coll = "J" & lng_dern_cell - 1
    mais si vous y tenez vous pouvez aussi écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_der_coll = "J" & CStr(lng_dern_cell - 1)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Par défaut
    Ok un grand merci

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

Discussions similaires

  1. [XL-2010] Transférer des données entre deux feuilles et les placer à des lignes spécifiques
    Par ElPibeOro dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2013, 14h25
  2. Transférer des données d'un onglet à un autre
    Par sangoben dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/06/2010, 09h36
  3. Comment transférer des données depuis et vers une collection ?
    Par Pierre8r dans le forum Persistance des données
    Réponses: 5
    Dernier message: 09/11/2007, 17h38
  4. Transférer des données d'une table à une autre
    Par picoloto dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/12/2005, 10h01
  5. TRansférer des données d'une table à l'autre
    Par kernel57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h05

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