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 :

Recopier deux colonnes sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Recopier deux colonnes sous condition
    Bonjour
    J ai 8 colonnes et 1045 lignes sur une feuille.
    si le chiffre qui se trouve dans la olonne 8(H)est supérieur a zéro
    Je veux que les informations ( pas les formules) des colonnes G (7) et H (8) de cette page apparraisent dans une autre feuille en haut et sans ligne vierge
    Merci pour votre réponse

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    si le chiffre qui se trouve dans la olonne 8(H)est supérieur a zéro
    Pour chaque ligne ?

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Une proposition utilisant un filtre automatique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub TransfertPositifs()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Source")                                            'Adapte le nom de la feuille source
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "G").End(xlUp).Row
        .Range("G1:H" & LastLig).AutoFilter field:=2, Criteria1:=">0"
        .Range("G1:H" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("Destination").Range("A1").PasteSpecial Paste:=xlValues 'Adapte le nom de la feuille Destination
        Application.CutCopyMode = False
        .AutoFilterMode = False
    End With
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut
    Bonjour
    C est ma première sur un forum
    Je ne sais pas si c est la bonne façon de répondre
    J ai essayer la formule mais j ai un message d erreur m indiquant erreur d exécution l indice n appartient pas a la sélection
    Je précise que l idée est de faire apparaitre sur une autre feuille uniquement les lignes dont le le chiffre de la colonne H est sup. a 0

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Relis les commentaires dans le code et adapte les noms des feuilles par rapport à ton classeur.
    J'ai mis Source et Destination, à toi d'adapter à ton classeur

  6. #6
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Deux colonnes
    Merci beaucoup pour ta réponse,
    Ça fonctionne mais je m aperçois qu il me manque une colonne (F) de la source que j aimerais faire apparaitre Dans la troisième colonne de la feuille de destination. Est ce possible

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    En adaptant le code de mercatog et en espérant n'avoir rien cassé :

    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
    Sub TransfertPositifs()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Source")                                            'Adapte le nom de la feuille source
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "F").End(xlUp).Row
        .Range("F1:H" & LastLig).AutoFilter field:=3, Criteria1:=">0"
        .Range("G1:H" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("Destination").Range("A1").PasteSpecial Paste:=xlValues 'Adapte le nom de la feuille Destination
        .Range("F1:F" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("Destination").Range("C1").PasteSpecial Paste:=xlValues 'Adapte le nom de la feuille Destination
        Application.CutCopyMode = False
        .AutoFilterMode = False
    End With
    End Sub

  8. #8
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Deux colonnes
    C est magique ( pour moi).ça marche
    Si je peux abuser , est il possible de trier dans la feuille de destination la colonne A ( c est des noms de fruits et légumes ) : si dans cette colonne il y a plusieurs noms identiques alors les regrouper sur une seule ligne et additionner les chiffres de la colonne B dans la mesure ou l unité de mesure se trouvant dans la colonne C est la même.
    Je crois que je suis en train de monter une 'usine a gaz'

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Fais un tableau croisé dynamique pour le regroupement.

  10. #10
    Membre régulier
    Inscrit en
    Mai 2011
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 85
    Points : 122
    Points
    122
    Par défaut
    Tu peux utiliser une collection pour récupérer toutes les possibilités de valeurs dans ta colonne (sans doublons). Ensuite "copier" ta collection dans une nouvelle feuille et faire un somme.si (soit tu le fait en te "créant" une fontion "somme si" en progammant ta boucle en VBA, soit tu le fait direct dans Excel, soit tu fais remplir tes cases par des "=somme.si(...)" via VBA)

  11. #11
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    @ Fred.dz :

    Bonjour,

    Pas exactement. Comme je le comprends, tu peux avoir plusieurs fois le même produit puisque tu peux avoir plusieurs valeurs différentes en colonne C pour ce même produit. L'alternative au TCD est un tri et une boucle sur les données.

  12. #12
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Deux colonnes
    Je ne suis vraiment pas expert et le tableau dynamique croise tout comme la boucle ne me parle pas plus. Quelle est la solution la plus simple pour un novice ?
    Merci pour l intérêt que vous portez a mon questionnement

  13. #13
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Je ne suis vraiment pas expert et le tableau dynamique
    C'est l'occasion
    C'est l'outil d'Excel le plus adapté pour l'analyse et synthèse et c'est simple d'utilisation.

  14. #14
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362

  15. #15
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Deux colonnes
    Merci pour vos réponses, je potasse le tutoriel et vous tiens au courrant.
    Cordialement pipof

  16. #16
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut Tableau dynamique
    Après avoir consulter le tutoriel? Je m aperçois qu il serait utile que je rajoute une colonne dans la premiere feuille "plat" et lorsque j écris un mot dans une cellule il doit apparaitre dans la feuille " liste" première colonne. Est ce possible?
    Actuellement j ai trois feuilles la première nommèe "plat" la seconde feuille nommèe calcul (source) et la troisiemme nommèe liste (destination).

  17. #17
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut
    pas de réponse au dernier message, c est que je ne doit pas être très clair.
    j ai une autre question qui me permettrais d'avancer :
    est il possible d’écrire un mot ou groupe de mots dans une cellule de la colonne C ou D d'une feuille "x" et qui soit reconnu dans une liste de mots ou groupe de mots qui se trouvent dans une colonne d'une feuille "y"
    Faut il ouvrir une autre discussion car je m'eloigne du premier sujet?

  18. #18
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Oui, je n'ai pas répondu à ton avant-dernier post. Excuse-moi. C'est le nom de tes feuilles qui m'a déconcerté. Peux-tu poster la macro que tu utilises ?

    Pour la dernière question, oui, ouvre un nouveau fil car en ce moment, je sature un peu.

  19. #19
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Novembre 2011
    Messages : 23
    Points : 3
    Points
    3
    Par défaut deux colonnes
    voici celle que j'utilise
    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
    Sub ingredients()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("calcul")
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "F").End(xlUp).Row
        .Range("F1:H" & LastLig).AutoFilter field:=3, Criteria1:=">0"
        .Range("G1:H" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("liste").Range("A1").PasteSpecial Paste:=xlValues
        .Range("F1:F" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("liste").Range("C1").PasteSpecial Paste:=xlValues
        .Range("D1:D" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("liste").Range("D1").PasteSpecial Paste:=xlValues
          .Range("C1:C" & LastLig).SpecialCells(xlCellTypeVisible).Copy
        Worksheets("liste").Range("E1").PasteSpecial Paste:=xlValues
        Application.CutCopyMode = False
        .AutoFilterMode = False
    End With
    End Sub
    merci pour ton aide
    pipof

  20. #20
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Tu devrais entourer ton code avec les balises code (mets le texte en surbrillance et appuie sur l'icône dièse (#). Ceci dit , tu parles d'une feuille "plat". Jusqu'ici, il n'y a que deux feuilles : calcul et liste. Peux-tu expliciter ce que tu veux ?

Discussions similaires

  1. macro swap de colonnes sous conditions
    Par stevenP dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2012, 18h17
  2. [XL-2007] copie colonne sous conditions en inputform
    Par octane dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2011, 15h25
  3. [XL-2003] Bloquer une colonne sous condition
    Par louzz dans le forum Excel
    Réponses: 11
    Dernier message: 07/09/2011, 16h22
  4. Fusion de deux colonnes sous ACCESS
    Par oliver75 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2010, 14h20
  5. selection de cellules d'une colonne sous condition
    Par Mounamidou dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/10/2007, 14h09

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