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 sous certaines condtions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut copier coller sous certaines condtions
    Bonjour et merci d'avance
    débutant en VBA mais grace à vous j'avance dans mon ptit projet

    je cherche un code qui copie non pas une ligne entière mais que la colonne A / C / E de la feuil1 vers les colonne A/B/C (dans l'ordre) de la feuil2 si la date figurant dans la colonne A de la feuil1 est inférieur à une date saisie dans feuil2 J5
    j’espère être claire et merci encore

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    regarde du coté des filtre élaboré ou filtre actif :http://www.developpez.net/forums/d13...s/#post7481714

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut voici simple et fonctionne tres bien
    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
    Sub test2()
        Dim xlsheet As Worksheet
        Dim xlsheet2 As Worksheet
        Dim AllRange As Range
        Dim MyRange As Range
        Dim i As Long
        Dim NbL As Long
            'definition des feuilles
        Set xlsheet = ThisWorkbook.Worksheets("Feuil1")
        Set xlsheet2 = ThisWorkbook.Worksheets("Feuil2")
            'parcour du range et copie avec condition
        With xlsheet
            NbL = .Range("A1").End(xlDown).Row
            Set AllRange = Application.Union(Range("A" & NbL), Range("C" & NbL), Range("E" & NbL))
            For Each MyRange In AllRange.Columns(1).Cells
                i = i + 1
                If MyRange.Value < xlsheet.Range("J5").Value Then
                    .Range(MyRange, MyRange.Offset(, 2)).Copy xlsheet2.Range("A" & i + 1)
                End If
            Next MyRange
        End With
    End Sub
    jJe sais pas si ca fait exactement ce que tu veux mais ca parcour tes valeurs ert ca copie la ligne si c'est inferieur a la valeur de J5

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour la forum, merci tamtam, ....
    sur internet j'ai arrivé a adapté partiellement ce 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
    19
    20
    Sub GRAND_LIVRE()
     
     Dim plage As Range, cel As Range
     
        Application.ScreenUpdating = False
        valcherch = Sheets("EDITION").Range("B5")
        With Worksheets("Mouvement")
            derlig = .Range("A" & Rows.Count).End(xlUp).Row
            Set plage = .Range("A11:A" & derlig)
        End With
     
        For Each cel In plage
            If cel = valcherch Then
                cel.EntireRow.copy
                Worksheets("EDITION").Range("A13").Select
                Selection.Insert Shift:=xlDown
            End If
        Next cel
        Application.ScreenUpdating = True
    End Sub
    ce code copie toute la ligne entière et moi je veux copie une partie de la ligne de la feuil "mouvement" à la feuil "edition" : c'est le (B E G H)
    De même je souhaite si je peux ajouter la condition suivante :
    le champs "B" de la feuil "Mouvement" qui est une date doit être comprise entre "B6" date départ et "B7" date fin de la feuil "EDITION"
    Merci d'avance et bonne et heureuse journée

    ce cesse pas de tenter et j'ai arriver à ca mais il prend bq de temps !!!
    aussi il ne commence pas à partir de la ligne 13 de la feuille "edition" !! il commence de la ligne 14 !!
    Aussi à l'ordre inverse de ma feuille "Mouvement"
    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
    Sub GRAND_LIVRE()
     
     Dim plage As Range, cel As Range
        Application.ScreenUpdating = False
        valcherch = Sheets("EDITION").Range("B5")
        With Worksheets("Mouvement")
            derlig = .Range("A" & Rows.Count).End(xlUp).Row
            Set plage = .Range("A11:A" & derlig)
        End With
     
        For Each cel In plage
            If cel = valcherch Then
            cel(, 2).copy Worksheets("EDITION").Range("A13")
            cel(, 5).copy Worksheets("EDITION").Range("B13")
            cel(, 7).copy Worksheets("EDITION").Range("C13")
            cel(, 8).copy Worksheets("EDITION").Range("D13")
     
            Worksheets("EDITION").Range("A13").Select
            Selection.Insert Shift:=xlDown
            Worksheets("EDITION").Range("B13").Select
            Selection.Insert Shift:=xlDown
            Worksheets("EDITION").Range("c13").Select
            Selection.Insert Shift:=xlDown
            Worksheets("EDITION").Range("D13").Select
            Selection.Insert Shift:=xlDown
            End If
     
        Next cel
        Application.ScreenUpdating = True
    End Sub
    je vous attends svp ... bonne fin journée

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    chui coincé
    et depuis hier j'ai rien reçu... pas comme d'habitude... j'ai pas de chance ds ce sujet

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/04/2008, 13h44
  2. Gérer un (Copier Coller) sous windows
    Par toutpart dans le forum C
    Réponses: 3
    Dernier message: 26/03/2008, 15h39
  3. [VBA-E] Copier coller sous conditions de couleur
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 10/04/2007, 18h27
  4. copier-coller sous delphi
    Par MNdevinf dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/12/2006, 10h28
  5. Copier coller sous MSFlexgrid
    Par Charly45 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/12/2006, 10h56

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