[Excel] Couper et coller montant vers une autre colonne selon condition

Résolu
Signaler
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
-
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010
-
Bonjour à vous,

Je suis débutant en VBA sous Excel, et j'aimerais avoir votre aide car je ne sais pas comment faire ceci :

- Vérifier ligne par ligne si dans la colonne C le mot est égal à "RGL" ou "CPT/CPT"

- Alors, couper les montants qui se trouvent dans les colonnes D et E, pour les coller dans les colonnes G et H

- Ensuite, colorer toute la ligne en jaune


Merci par avance pour votre aide !!

5 réponses

Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010

C'est bon j'ai trouvé :
Sub Mise_en_forme_Récap_2()
Dim cellule As Variant
For Each cellule In Range("B13:B65536")
If Left$(cellule, 7) = "RGL DIF" Then
    cellule.Offset(0, 1).Select
    Selection.Cut
    cellule.Offset(0, 4).Select
    ActiveSheet.Paste
    cellule.Offset(0, 2).Select
    Selection.Cut
    cellule.Offset(0, 5).Select
    ActiveSheet.Paste
    cellule.EntireRow.Interior.ColorIndex = 15
End If
Next cellule
End Sub
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010

Personne ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,
Il y aura probablement quelqu'un lorsque tu nous auras dit si ta difficulté est :
- de boucler dur ta colonne C ligne par ligne
ou
- de lire ce qui s'y trouve (dans chaque ligne)
ou
- si tu sais faire ce qui précède : effacer ce qui se trouve en colonne D et en colonne E et en copier les valeurs en colonne G et H

Pour l'instant, en effet, nous n'en savons rigoureusement rien et n'osons croire que tu ne sais faire ni une chose, ni l'(autre !
Et si tu nous montrais (ton code) ce que tu as commencé à écrire ? (on le saurait alors un peu mieux)

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Ecoute,
Je ne veux pas te faire (ce n'est pas dans mes habitudes) ce qui parait être un exercice de cours.
Mais en même temps, j'aime partir la conscience en paix (et je vais me dédier à d'autres choses plus artistiques pendant environ un mois)
Voici la solution que j'ai trouvée pour, à la fois, de mettre sur une piste et ne pas exactement faire ton exercice ===>>> Une petite démo :
For Each cellule In Range("C1:C10")
     MsgBox "la cellule " & cellule.Address & "contient " & cellule.Value & vbCrLf & _
     "la cellule " & cellule.Offset(0, 1).Address & " contient " & cellule.Offset(0, 1).Value & vbCrLf & _
     "la cellule " & cellule.Offset(0, 2).Address & " contient " & cellule.Offset(0, 2).Value & vbCrLf & _
     "que dois-je faire ?" & vbCrLf & _
     " dire que si " & cellule.Value & " = 'CPT' (par exemple), alors :" & vbCrLf & _
     "1) dire que " & cellule.Offset(0, 4).Address & ".value = " & cellule.Offset(0, 1).Address & ".value" & vbCrLf & _
     "2) dire que " & cellule.Offset(0, 5).Address & ".Value = " & cellule.Offset(0, 2).Address & ".value" & vbCrLf & _
     "3) dire ensuite que " & cellule.Offset(0, 1).Address & ".value = """" et que " & vbCrLf & _
     cellule.Offset(0, 2).Address & ".value = """""
   Next

Décortique-la. Elle contient toutes tes réponses, sauf la dernière, pour laquelle je t'invite simplement à ouvrir ton aide Excel sur le mot Interior et sur le mot ColorIndex.
Bonne étude et fais en sorte de mériter l'effort que je viens de faire.

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
12
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 mars 2010

Bonjour,

Merci pour ton aide !!

Pour info je ne suis pas étudiant, je fais cette macro pour un fichier récurrant dans mon boulot.

Voilà ce que j'ai fais :

Sub Mise_en_forme_Récap_2()
Dim cellule As Variant
For Each cellule In Range("C13:C80")
If cellule.Value = "PP VN 3846" Then
    cellule.Offset(0, 1).Select
    Selection.Cut
    cellule.Offset(0, 4).Select
    ActiveSheet.Paste
    cellule.Offset(0, 2).Select
    Selection.Cut
    cellule.Offset(0, 5).Select
    ActiveSheet.Paste
    cellule.EntireRow.Interior.ColorIndex = 15
End If
Next cellule
End Sub


Elle fonctionne très bien, mais j'aimerais modifier le "cellule.Value" pour qu'il soit comme ça :

cellule.Value = tout ce qui commence par "PP VN"


Car pour l'instant il ne fait que de la comparaison exacte

Comment faire ?

Merci