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 des lignes sous condition avec un changement de texte sur la ligne copiée. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut copier coller des lignes sous condition avec un changement de texte sur la ligne copiée.
    Bonjour tout le monde,

    Sur un fichier Excel j’ai besoin de copier et coller des lignes qui contient une condition sur une cellule.
    Le problème que j’ai-je veux changer sur la ligne copie le contenu d’une cellule texte par un autre texte
    Ci-dessous le code que j’ai utilisé par le copiage il me reste que de change le texte de la cellule sur la ligne copie.


    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
    Sub Renouvellement_Norm()
        Dim plage As Range, cel As Range
        'stop rafraichissement ecran
        Application.ScreenUpdating = False
        'valeur a chercher
        valcherch = Sheets("Extraction1").Range("A1")
        With Worksheets("Extraction1")
            'derniere cellule colonne U
            derlig = .Range("U" & Rows.Count).End(xlUp).Row
            'defintion plage a tester en memoire
            Set plage = .Range("U5:U" & derlig)
        End With
     
        derlig = 0
        With Worksheets("Extraction1")
            'test plage
            For Each cel In plage
                If cel = valcherch Then
                    'premiere cellule vide apres derniere non vide colonne D
                    derlig = .Range("U" & Rows.Count).End(xlUp).Row + 1
                    'premier lancement
                    If derlig = 2 Then
                        derlig = 9
                    End If
                    'copy ligne entiere
                    cel.EntireRow.Copy .Range("A" & derlig)
                End If
            Next cel
        End With
        'rafraichissement ecran
        Application.ScreenUpdating = True
    End Sub

  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
    Bonjour,

    Je n'ai pas compris ce que tu veux remplacer. Peux-tu donner un exemple ?

  3. #3
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut a vous
    Classeur VBA.xlsmci joint mon fichier
    sur la ligne copiée j'ai besoin de changer "CAN" par "CSA"

    je reste disponible pour plus d'informations.Classeur VBA.xlsmClasseur VBA.xlsm


    Cdt,
    Abdellatif

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour !

    Une seule ligne de code nécessaire avec la méthode Replace, pas besoin de chercher bien loin ‼

    Sinon effectuer depuis la feuille de calcul un Rechercher / Remplacer
    Et en activant au préalable le Générateur de macros, l'ami du débutant, un code est livré sur un plateau !

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valcherch = Sheets("Extraction1").Range("A1")
    J'ai loupé quelque chose ou la cellule A1 est vide ?

  6. #6
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut copier coller des lignes sous conditions
    Bonjour daniel,

    La cellule A1 ne pas vider par contre il la condition avec qui je copier-coller la ligne la valeur c’est « 1 » juste en couleur blanc

    je reste disponible pour plus d'informations.

    cdt,
    ouga

  7. #7
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut copier coller des lignes sous conditions
    Bonjour marc,

    Sauf que moi je veux remplacer le texte de la cellule V de la ligne copiée sans touche l’originale, j’arrive à copier-coller la ligne sous condition mais j’ai besoin de change le texte de la cellule V de la ligne copiée de « CAN » vers « CSA »
    Merci de votre prise en charge.

    Merci d’avance.


    cdt,
    ouga

  8. #8
    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
    Je reproduis ici la partie de ton code que j'ai modifié :

    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
        With Worksheets("Extraction1")
            'test plage
            For Each cel In plage
                If cel = valcherch Then
                    'premiere cellule vide apres derniere non vide colonne D
                    derlig = .Range("U" & Rows.Count).End(xlUp).Row + 1
                    'premier lancement
                    If derlig = 2 Then
                        derlig = 9
                    End If
                    'copy ligne entiere
                    cel.EntireRow.Copy .Range("A" & derlig)
                    If .Range("A" & derlig).Offset(, 21) = "CAN" Then
                        .Range("A" & derlig).Offset(, 21) = "CSA"
                    End If
                End If
            Next cel
        End With
        'rafraichissement ecran
        Application.ScreenUpdating = True

  9. #9
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    Ça fonctionne parfaitement merciii bcq
    Mais par contre si j’avais « CSA » a la ligne d’origine je veux avoir « CAN » est ce que c’est possible

  10. #10
    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
    Le code suivant remplace "CSA" par "CAN" et réciproquement :

    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
        With Worksheets("Extraction1")
            'test plage
            For Each cel In plage
                If cel = valcherch Then
                    'premiere cellule vide apres derniere non vide colonne D
                    derlig = .Range("U" & Rows.Count).End(xlUp).Row + 1
                    'premier lancement
                    If derlig = 2 Then
                        derlig = 9
                    End If
                    'copy ligne entiere
                    cel.EntireRow.Copy .Range("A" & derlig)
                    Select Case .Range("A" & derlig).Offset(, 21)
                        Case "CSA"
                            .Range("A" & derlig).Offset(, 21) = "CAN"
                        Case "CAN"
                            .Range("A" & derlig).Offset(, 21) = "CSA"
                    End Select
                    End If
                End If
            Next cel
        End With

  11. #11
    Membre régulier
    Homme Profil pro
    DATAMINER
    Inscrit en
    Novembre 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : DATAMINER
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2014
    Messages : 147
    Points : 77
    Points
    77
    Par défaut
    Bonjour,

    Merci bcq Daniel pour ta collaboration
    Ça marche très bien


    Cdt,
    ouga

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

Discussions similaires

  1. [XL-2007] Copier/coller des lignes avec des cellules verrouillées
    Par Adri687 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 10/01/2013, 11h25
  2. copier/coller lignes sous condition colonne vers autre feuille
    Par juniorglobal08 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/05/2009, 17h29
  3. [XL-2003] Copier coller une ligne sous condition
    Par geraldferri dans le forum Excel
    Réponses: 12
    Dernier message: 21/04/2009, 11h17
  4. copier des lignes sous conditions (dans 2 colonnes différentes)
    Par olive08 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 12/10/2007, 14h44
  5. Réponses: 13
    Dernier message: 16/08/2006, 09h06

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