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

Excel Discussion :

Copier-coller avec condition particulière [XL-2013]


Sujet :

Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut Copier-coller avec condition particulière
    Bonjour à tous,

    J'aimerai copier et coller uniquement certaines cellules au sein d'un autre sheet avec une condition particulière (si j'ai "clos" dans une cellule d'une colonne)

    Le souci, c'est que je n'arrive qu'a copier-coller une seule ligne (la première...)

    Voici le code que j'ai réalisé :

    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
    Private Sub CommandButton1_Click()
    Dim n As Integer
     
    With Sheets("BDD")
    nbligne = .cells(Rows.Count, 22).End(xlUp).Row
    nbligne = nbligne - 2
    End With
     
    For nbligne = 3 To nbligne
        If Range("V" & nbligne).Value = "clos" Then
            Rows(nbligne & ":" & nbligne).Select   'Permet de selectionner une ligne
            Selection.Cut                          'Permet de couper la ligne
            Sheets("Affaires cloturées").Activate  'Permet d'activer le sheet "Affaires cloturés"
            ActiveSheet.Paste                      'Permet de coller sur le sheet actif
            Sheets("BDD").Select                   'Permet de selectionner la base de donnée
            Rows(nbligne & ":" & nbligne).Select   'Permet de selectionner la ligne "vide"
            Selection.Delete Shift:=xlUp           'Permet de supprimer la ligne vide
        End If
    Next
    End Sub
    Pouvez-vous m'aider ? Car j'aimerai que les données coller dans mon sheet s'incrémente ligne par ligne.

    Cordialement.

    GK

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 112
    Points : 191
    Points
    191
    Par défaut
    Bonjour,

    Citation Envoyé par Ghost0000 Voir le message
    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
    Private Sub CommandButton1_Click()
    Dim n As Integer
    
    With Sheets("BDD")
    nbligne s= .cells(Rows.Count, 22).End(xlUp).Row
    nblignes = nblignes - 2
    End With
    
    For nbligne = 3 To nblignes
        If Range("V" & nbligne).Value = "clos" Then
            Rows(nbligne & ":" & nbligne).Select   'Permet de selectionner une ligne
            Selection.Cut                          'Permet de couper la ligne
            Sheets("Affaires cloturées").Activate  'Permet d'activer le sheet "Affaires cloturés"
            ActiveSheet.Paste                      'Permet de coller sur le sheet actif
            Sheets("BDD").Select                   'Permet de selectionner la base de donnée
            Rows(nbligne & ":" & nbligne).Select   'Permet de selectionner la ligne "vide"
            Selection.Delete Shift:=xlUp           'Permet de supprimer la ligne vide
        End If
    Next
    End Sub


    GK

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut
    J'ai améliorer mon code, mais cela ne réalise pas toutes les oprations sur les lignes, je ne comprend pas pourquoi...


    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
    Private Sub CommandButton1_Click()
    Dim i As Long
    MsgBox "Voulez-vous réellement réaliser la mise à jour ?", vbYesNo, Question
    With Sheets("BDD")
        For i = 3 To .cells(Rows.Count, "V").End(xlDown).Row                                                     'Dernière ligne
            If .cells(i, "V") = "clos" Then
                Rows(i & ":" & i).Select                                                                          'Permet de selectionner une ligne
                Selection.Cut                                                                                     'Permet de couper la ligne
                .Rows(i).Copy Sheets("Affaires cloturées").cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
                Sheets("BDD").Select                                                                              'Permet de selectionner la base de donnée
                Rows(i & ":" & i).Select                                                                          'Permet de selectionner la ligne "vide"
                Selection.Delete Shift:=xlUp                                                                      'Permet de supprimer la ligne vide
                i = i + 1
        End If
        Next i
    End With
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 112
    Points : 191
    Points
    191
    Par défaut
    Bonjour
    il faut boucler du bas vers le haut pour ne pas sauter de lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 to fin
      if pas_bien then cells(i,1).entirerow.delete
     'automatiquement la ligne i+1 se retrouve être la ligne i et sera ignorée
    next
    for i = fin to 1 step -1
        if pas_bien then cells(i,1).entirerow.delete
        'pareil la ligne i+1 deviens i, mais comme on va vers le haut c'est pas grave !
    next
    letienne

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut
    Bonsoir,

    Merci de ton aide, tu avais raison, cela fonctionne très bien !!

    Vive Developpez !

    Voici mon code de mon bouton :

    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
    Private Sub CommandButton1_Click()
    '=============================================================================================================================================================
    'On définit les variables que l'on va utiliser :
    Dim i As Long                                                                                                       'i correspond au numéro de ligne que l'on parcours au niveau de la colonne "V"
    Dim Msg, Style, Title, Response               'Msg contient le message à afficher - Style correspond au type de message à afficher - Title le titre du message - Response est la réponse au message
    '=============================================================================================================================================================
        Msg = "Voulez-vous réellement réaliser la mise à jour ?"                                                        'Message à afficher
        Style = vbYesNo + vbQuestion + vbDefaultButton1                                                                 'Style du message (Présence des boutons OUI/NON)
        Title = "Question !"                                                                                            'Titre du message
        Response = MsgBox(Msg, Style, Title)                                                                            'Contenu de la réponse
    '=============================================================================================================================================================
    If Response = vbYes Then                                                                                            'Si l'utilisateur répond à OUI, alors on execute le code ci après :
            With Sheets("BDD")                                                                                          'Avec le sheet BDD (base de données)
                        For i = .cells(Rows.Count, "V").End(xlUp).Row To 3 Step -1                                      'De i = fin_de_la_base vers i = 3 par pas de "-1"
                            If .cells(i, "V") = "clos" Then                                                             'Si le contenu de la cellule est "clos" alors
                            .Rows(i).Copy Sheets("Affaires cloturées").cells(Rows.Count, "A").End(xlUp).Offset(1, 0)    'On copie le contenu de la ligne vers le sheet "Affaires cloturées"
                            .cells(i, 1).EntireRow.Delete                                                               'On supprime la ligne que l'on vient de copier au niveua du sheet "BDD"
                            End If                                                                                      'Fin de la boucle
                        Next                                                                                            'Next signifie que l'on passe au i suivant
            End With                                                                                                    'Fin du With
    End If                                                                                                              'Fin du IF
    End Sub                                                                                                             'Fin du sub
    '=============================================================================================================================================================

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

Discussions similaires

  1. Copier coller avec condition if and then
    Par blackty1 dans le forum Excel
    Réponses: 7
    Dernier message: 18/07/2013, 10h20
  2. [XL-2007] Macro- Copier-coller avec conditions
    Par natou_pc dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 12/05/2013, 18h57
  3. Utilisation de Copier/Coller avec Condition
    Par teritor dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/11/2012, 11h58
  4. copier coller avec condition
    Par ons1402 dans le forum Excel
    Réponses: 4
    Dernier message: 14/09/2012, 12h45
  5. [XL-2000] macro copier coller avec condition ne marche pas
    Par antfo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/03/2010, 10h54

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