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 :

VBA sur deux feuilles différentes


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut VBA sur deux feuilles différentes
    Bonjour bonjour,

    Je ne suis pas encore très rodé à VBA du coup j'ai besoin d'un peu d'aide svp

    Situation: j'ai deux feuilles Excel,la première: Nom : Capture.JPG
Affichages : 278
Taille : 90,1 Ko
    la deuxième: Nom : Capture1.JPG
Affichages : 271
Taille : 60,8 Ko
    mon code: Nom : Capture2.JPG
Affichages : 273
Taille : 94,1 Ko


    L'objectif: On arrive sur la première feuille, on clique sur les boutons des lignes voulues tout à gauche, celles ci sont directement copiées collées dans la deuxième feuille, puis on clique sur le bouton Valider toujours dans la première feuille, bouton qui va permettre de supprimer toutes les lignes vides dans la deuxième feuille.
    En gros il faut que la deuxième feuille soit propre et présentable...

    Avec mon code vous pouvez voir que j'ai réussi à copier coller les lignes dont on a cliqué sur le bouton, sauf que je ne sais pas comment coder mon bouton Valider :p

    A l'heure actuelle, les lignes qui ne sont pas sélectionnées sur la première feuille apparaissent vides sur la deuxième, du coup ce n'est pas clean ^^

    J'espère que j'ai été plutôt clair

    Merci d'avance !


    ps: ce ne sont pas les bonnes données mais ça on s'en fout !

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2015
    Messages : 64
    Points : 75
    Points
    75
    Par défaut
    Hidihon,

    question : Tu mets un bouton sur chaque ligne car tu ne veux que quels lignes ou bien veux tu copier toutes les lignes et les coller à la dernière vide de ton deuxième fichier ?

    En tout état de cause pour que tu colles une ligne à la dernière non remplie du deuxième fichier voici la démarchre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    sheets(2).select
    'remplace le 2 par le nom de ta feuille
    sheets(2).Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    À ta dispo si besoin est

  3. #3
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Problématique bien exposée.
    Je pense que tu te compliques la tache.
    Et ton code est lourd.
    Un seul bouton suffirait selon moi.
    Pour ce faire:
    Selectionner sur Excel a ligne que tu veux copier.
    L'activation du bouton effectuerait la copie de la ligne entière de ta sélection.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses rapides,

    Dans le contexte, il s'agira d'un fichier pour d'autres amis qui n'y connaissent rien à Excel, qui m'ont demandé à ce qu'ils puissent sélectionner les lignes qu'ils veulent sur la première feuille et les copier (avec un nouveau numéro de tâche du coup) dans la deuxième.

    Exemple:
    Je sélectionne les lignes 15 18 19 (1ere feuille) qui apparaissent avec les numéros 1 2 et 3 dans la deuxième feuille.

    Du coup c'est vraiment mes amis qui m'ont demandé de faire ça exactement comme ça donc j'aimerais bien faire moins compliqué mais il s'agit ici de leurs consignes :/

    Ils veulent sélectionner les bonnes lignes du premier fichier pour qu'elles apparaissent (dans le même ordre) dans le deuxième après avoir appuyé sur le bouton Valider :3

  5. #5
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    Cela ne change rien.
    Tes amis sélectionnent la 1ère cellule des lignes qu'ils souhaitent voir recopiées (contigües ou non).
    La copie s'effectuera sur la ligne correspondant à chaque cellule de ta sélection..

    Cette dernière indication devrait définir ton code.

    Tu reviens si nécessaire.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  6. #6
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    D'accord.

    Tu regardes ce code
    Tu l'adaptes
    Et tu reviens pour toute question.

    Attention : à adapter

    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
     
    Private Sub Btn_lacopie_Click()
     
    Dim dest As Range
     
    With Workbooks("mercatog.xlsm").Worksheets("Toto")
        Set dest = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
    End With
     
    Dim c As Range
     
    For Each c In Selection
            With c
                    Range(.Offset(0, 0), .Offset(0, 10)).Copy Destination:=dest
                    Application.CutCopyMode = False
                    Set dest = dest.Offset(1, 0)
            End With
    Next c
     
    Set dest = Nothing
     
    End Sub

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je viens de me replonger dans le projet et je suis en train de regarder ton code Marcel.

    J'ai bien compris qu'il fallait que je change le nom du bouton de commande mais malheureusement je ne comprends pas à partir de la ligne With Workbooks...etc

    Est ce que tu peux me décrire ce que fais ce code ligne par ligne stp de sorte à ce que je puisse l'adapter à ma situation ?

    Bien à toi (et aux autres par la même occasion !)

  8. #8
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour à toi, Bonjour au Forum,

    Recherche de la 1ère cellule vide à informer

    Boucle sur chaque cellule de ta sélection
    Copie vers la cellule libre
    Redéfinition de la cellule libre à informer.
    Cellule suivante.

    Libération de variable

    Ces indications, et ce lien pour toutes les méthodes employées, devraient suffire.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Je vais encore vous embêter mais je galère encore...

    J'arrive avec ce code, je fais le test pour le bouton 9...

    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
    Private Sub CommandButton9_Click()
     
    Dim dest As Range
     
    With Workbooks("Analyse de risques.xlsm").Worksheets("Feuil2")
     
        Set dest = .Cells(.Rows.Count, 2).End(xlUp).Offset(15, 0)
    End With
     
    Dim c As Range
     
    For Each c In Selection
            With c
                    Range(.Offset(0, 0), .Offset(0, 10)).Copy Destination:=dest
                    Application.CutCopyMode = False
                    Set dest = dest.Offset(1, 0)
            End With
    Next c
     
    Set dest = Nothing
     
    End Sub

    Je n'arrive pas à comprendre ce qu'il faut modifier pour que ça fonctionne !


    Merci d'avance si vous voulez bien m'aider ^^

    Bonne journée

  10. #10
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour.

    Mes excuses pour ce retard.

    1 remarque : balise ton code avec les bornes #. Il sera plus lisible.

    Je n'arrive pas à comprendre ce qu'il faut modifier pour que ça fonctionne !
    Tout d'abord, il te faut comprendre le code (Objets utilisés, Méthodes et Propriétés)
    Pour ce faire, tu le consultes mot par mot.
    Ensuite, tu l'adaptes en modifiant les noms d'objets, les adresses (Méthode Offset)...

    Dans cette discussion, au post #20, j'indique quelques liens qui pourront t'aider.

    A plus tard.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour bonjour,

    J'ai bien remarqué que j'étais trop peu calé en VBA pour piloter un projet comme ça du coup j'ai demandé l'aide d'un pro que j'ai payé et qui m'a tout fait nickel, merci pour l'aide apportée ici

    Je laisse le code qu'il m'a fait par bouton. Au final chaque bouton copie colle directement sans passer par un bouton "Valider" !

    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
    Sub Bouton1_vMAV()
     
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Set ws1 = Worksheets("Feuil1")
    Set ws2 = Worksheets("Feuil2")
     
    ws2.Activate
    Dim myFirstEmptyCell As Range
    Set myFirstEmptyCell = ws2.Cells(16, 2)
    While Not IsEmpty(myFirstEmptyCell)
    Set myFirstEmptyCell = ws2.Range(ws2.Cells(myFirstEmptyCell.Row + 1, myFirstEmptyCell.Column), ws2.Cells(myFirstEmptyCell.Row + 1, myFirstEmptyCell.Column))
    Wend
     
    ws1.Activate
    ws1.Range(ws1.Cells(15, 3), ws1.Cells(15, 7)).Copy
    ws2.Activate
    myFirstEmptyCell.Select
    ActiveSheet.Paste
     
      Dim derligne As Long
      derligne = Range("C" & Rows.Count).End(xlUp).Row
      Rows(derligne).Insert
     
    End Sub
    Bonne journée à tous

  12. #12
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour à toi, Bonjour au Forum,

    j'ai demandé l'aide d'un pro que j'ai payé et qui m'a tout fait nickel
    Je vais être franc.
    Cela n'en valait pas la peine.

    Il y aurait à dire sur ce code (s'il te plaît, balise tes reports par les bornes #).
    - Utilisation du bloc With
    - Libération des variables.
    ......

    Adapter ma proposition ne t'aurait pas pris un temps énorme.
    Celui-ci du reste aurait constitué un investissement pour tes développements à venir.

    Bonne continuation tout de même

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


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

Discussions similaires

  1. Macro recherche et affichage sur deux feuilles différentes
    Par lilou89 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/08/2014, 17h48
  2. Réponses: 1
    Dernier message: 12/10/2013, 20h04
  3. Réponses: 2
    Dernier message: 21/03/2013, 18h38
  4. comparaison de cellules sur deux feuilles différentes
    Par scorpele dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/07/2008, 10h36
  5. Réponses: 6
    Dernier message: 22/05/2008, 12h34

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