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 :

Recopie les valeurs de la feuille A vers la feuille B [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Par défaut Recopie les valeurs de la feuille A vers la feuille B
    Bonjour à tous !

    Via du VBA et son bouton associé..

    Je tente de recopier toutes les valeurs saisies dans la colonne AA (plage AA13 jusqu'à "indefini", plage non fixe) de ma feuille "Formulaire", vers ma feuille "Demande" (colonne V).

    La condition : La valeur de la colonne E (de Formulaire) et D (de Demande) soit égale.

    merci pour le coup de pouce

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour,

    Essaye ceci :

    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
    Sub Test()
     
    dim WsForm as worksheet, WsDde as worksheet
    set WsForm = thisworkbook.worksheets("Formulaire")
    set WsDde = thisworkbook.worksheets("Demande")
     
    with wsform
     
    if .range("E1")=.range("D1") then
     
    .range("AA13:AA" & .cells(rows.count,27).end(xlup).row).copy destination:=WsDde.range("V1")
     
    end if
     
    end with

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Par défaut
    Merci Trystan441.

    Nous y sommes presque .. il faut que la valeur copie se place sur la bonne ligne.. cela ne peut pas être "V1" comme destination.. mais plutot la ligne où la valeur repérée est identique.

    En fait il faudrait balayer la Colonne AA (onglet Formulaire) pour repérer les valeurs à recopier vers la colonne V (onglet Demande) où AA (onglet Formulaire) est = D (onglet Demande)

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Re,

    Pas de soucis mais peut être que tu aurais pu l'expliquer dans ton premier message

    Une question : Cas concret

    Copie vers la ligne identique :
    Valeur en E10 et D10 égale -> Copie de AA10 (Formulaire) vers V10 (Demande)

    OU

    Copie vers la première ligne vide
    Valeur en E10 et D10 égale -> Copie de AA10 (Formulaire) vers V5 (Demande)

    Laquelle de ces deux possibilités est la bonne ?

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Par défaut
    Effectivement, j'ai merdé sur l'explication ! désolé

    donc..: "xx" etant le n° de la ligne..

    Valeur en E"xx" (Formulaire) et D"xx" (Demande) égale => copie de AA"xx" (Formulaire) (même ligne que E"xx"), vers V"xx" (Demande)

    les valeurs qui sont égales ne sont pas forcement sur la même ligne entre les 2 onglets...
    par contre, sur l'onglet Formulaire, oui

    doit y avoir une histoire de bloucle quelque part à faire..

    oulà!! j'espère que je suis clair!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Je t'avoue que je n'ai pas tout compris mais tu vas me dire si le code ci-dessous te convient !

    Je n'ai pas testé :

    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
    Sub Transfert
     
    dim i as long, j as long
     
    dim WsForm as worksheet, WsDde as worksheet
    set WsForm = thisworkbook.worksheets("Formulaire")
    set WsDde = thisworkbook.worksheets("Demande")
     
    dim TabForm() as variant, TabDde() as variant
    tabform=wsform.usedrange.value
    tabdde=wsdde.usedrange.value
     
     
    for i = 2 to ubound(tabform,1)
    for j = 2 to ubound(tabdde,1)
     
    if tabform(i,5)=tabdde(j,4) then tabdde(j,22)=tabform(i,27)
     
    next j
    next i
     
    Wsdde.Range("A1").Resize(UBound(Tabdde, 1), UBound(Tabdde, 2)) = Tabdde
     
    end sub

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Par défaut
    Magnifique !!!
    est ce possible d'avoir un peu de commentaires afin de voir commetn tu fais ca ??
    j'ai besoin de comprendre et d'apprendre

  8. #8
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Ah ben oui bien sur, j'ai envoyé trop vite !

    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
    Sub Transfert
     
    'Variables compteur
    dim i as long, j as long
     
    'Déclaration des objets Worksheets
    dim WsForm as worksheet, WsDde as worksheet
    set WsForm = thisworkbook.worksheets("Formulaire")
    set WsDde = thisworkbook.worksheets("Demande")
     
    'Déclaration des variables tableaux
    'Ces tableaux "virtuels" permettent d'accélérer la procédure
    dim TabForm() as variant, TabDde() as variant
    tabform=wsform.usedrange.value 'Charge les données de la feuille Formulaire dans le tableau TabForm
    tabdde=wsdde.usedrange.value 'Charge les données de la feuille Demande dans le tableau TabDde
     
     
    for i = 2 to ubound(tabform,1) 'Boucle de la cellule 2 jusqu'à la dernière ligne du tableau tabform
    for j = 2 to ubound(tabdde,1) 'Boucle de la cellule 2 jusqu'à la dernière ligne du tableau TabDde
     
    'La condition qui te permet de venir attraper la donnée qui t'intéresse
    if tabform(i,5)=tabdde(j,4) then tabdde(j,22)=tabform(i,27) 'On évite le presse papier en faisant référence directement à la cellule où est située notre valeur
     
    next j
    next i
     
    'Cette ligne permet de venir coller les données du tableau virtuel sur ta feuille WsDde
    'Pour voir comment ça fonctionne, je t'invite à suivre le lien que je t'ai mis ci-dessous
    Wsdde.Range("A1").Resize(UBound(Tabdde, 1), UBound(Tabdde, 2)) = Tabdde
     
     
    'FIN'
     
     
    end sub
    Si tu ne connais pas les tableaux virtuels, suis le lien suivant : Les variables tableaux

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Par défaut
    Nickel !

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

Discussions similaires

  1. [XL-2003] Avec VBA, copier les formats et les valeurs d'une feuille vers une autre.
    Par mormic dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/11/2014, 20h17
  2. recopier les valeur en fonction de combobox en cascade
    Par adriennoob dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2010, 20h00
  3. Réponses: 1
    Dernier message: 25/06/2009, 07h53
  4. Copier les valeurs d'une feuille dans une nouvelle feuille en VBA
    Par muska78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 11h44
  5. Réponses: 2
    Dernier message: 21/06/2006, 18h57

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