fonction colorer copier coller avec condition

nicof

XLDnaute Nouveau
--------------------------------------------------------------------------------

Bonjour a tous,

je suis egalement debutant en VBA, voici ce que j'aimerais faire

dans la feuille 1 de mon classeur il y a six colonnes de quinze lignes.

je voudrais que VBA me trouve automatiquement toutes les cellules de la colonne 6 dont la valeur commence par le texte "Code", puis qu'il colore en rouge la ligne entière dans laquelle se trouve la cellule.

Ensuite j'aimerais qu'il me copie ces lignes et les colle sur la feuille 2 du meme classeur

J'ai le debut du code :

Sub Colorelignessiproblemesindicateurs()
Range("F1:F15").Select
For Each Cell In Selection
If Left$(Cell.Value, 4) = "Code" Then
Cell.EntireRow.Interior.Color = vbRed
Else
Cell.EntireRow.Interior.Color = vbWhite
End If
Next Cell
End Sub

Mais j'ai un pb ensuite

Je pense que si je veux inserer la deuxieme partie de ma requete à savoir copier coller) dans une seule procedure mon code est mauvais

merci de votre aide
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : fonction colorer copier coller avec condition

Bonjour Nicof, bonjour le forum,

je te propose le code suivant :

Code:
Sub Colorelignessiproblemesindicateurs()
Dim Cell As Range 'déclare la variable Cell
Dim dest As Range 'déclare la variable dest
 
For Each Cell In Range("F1:F15") 'boucle sur toutes le cellules de la plage F1:F15
    If Left$(Cell.Value, 4) = "Code" Then 'condition 1 : si les 4 premiers caractères de la cellule sont "Code"
        With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
            If .Range("F1").Value = "" Then 'condition 2 : si F1 est vide
                Set dest = .Range("A1") 'définit la variable dest (A1)
            Else 'sinon (si F1 n'est pas vide)
                Set dest = Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest (la première ligne vide rencontrée)
            End If 'fin de la condition 2
        End With 'fin de la prise en compte de l'onglet "Feuil2"
        '**************************************************************************************
        'inverser les deux lignes en dessous si on désire que la ligne copiée ne soit pas rouge
        '**************************************************************************************
        Cell.EntireRow.Interior.Color = vbRed 'colore la ligne en rouge
        Cell.EntireRow.Copy Destination:=dest 'copie la ligne dans l'onglet Feuil2
    Else 'sinon (si les 4 premiers caractères de la cellule sont différents de "Code"
        Cell.EntireRow.Interior.Color = vbWhite 'colore la ligne en blanc
    End If 'fin de la condition 1
Next Cell 'prochaine cellule de la plage F1:F15
End Sub
 

Discussions similaires

Réponses
7
Affichages
581

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso