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

Résolu
spauk13 Messages postés 12 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 8 mars 2010 - 6 mars 2010 à 16:11
spauk13 Messages postés 12 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 8 mars 2010 - 8 mars 2010 à 21:37
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

spauk13 Messages postés 12 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 8 mars 2010
8 mars 2010 à 21:37
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
3
spauk13 Messages postés 12 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 8 mars 2010
7 mars 2010 à 14:01
Personne ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 mars 2010 à 15:12
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 mars 2010 à 17:48
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spauk13 Messages postés 12 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 8 mars 2010
8 mars 2010 à 11:27
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
0
Rejoignez-nous