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 :

[VBA-E]Création fichier EXCEL et détection cellule vide


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut [VBA-E]Création fichier EXCEL et détection cellule vide
    Bonjour à tous,

    Je suis ne train de fabriquer un outil sous EXCEL et les limites d'EXCEL me poussent à chercher des solutions sous VBA; je précise que je ne m'y connais pas du tout en VBA.

    En fait, j'ai créé une macro qui filtre une feuille, copie les résultats et les colle dans une autre feuille pour plus de lisibilité. Les cellules peuvent être sur fond coloré ou pas.

    Le problème est que dans certains cas, les cellules ne contiennent aucune valeur et donc ,j'aimerais que le résultat soit un message du type " Il ny'a aucune cellule répondant à vos critères" plutôt qu'un copier-coller de cellules à fond coloré et sans valeur.


    En plus,j'essaie en vain de coller ces résultats dans un autre classeur EXCEL dont le nom comporterait le jour et la date d'exécution de la macro pour assurer un suivi.

    Pouvez-vous m'aider SVP ?

    Je vous mets ici ma fonction "filtre"

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    Sub Taches_NonDemarees()
    'Fonction permettant d'afficher les taches non démarées
    ' 
    '
     
    ' Ici, on commence par effacer la zone où on veut afficher les données filtrées (au cas où cette zone contiendrait des valeurs)
            Columns("E:ZC").Select
        Selection.Delete Shift:=xlToLeft
        Rows("20:540").Select
        Selection.Delete Shift:=xlUp
        ActiveWindow.SmallScroll Down:=-15
     
        '=============================================
    ' Ici, on dimensionne les colonnes qui recevront les données
     
        Columns("F:F").Select
        Selection.ColumnWidth = 4.57
        Columns("G:G").Select
        Selection.ColumnWidth = 44.86
        Columns("H:H").Select
        Selection.ColumnWidth = 9.43
        Columns("I:I").Select
        Selection.ColumnWidth = 6.29
     
    'On va sur la feuille d'où l'on va filtrer les données
    ' On filtre et on copie le résultat
        Sheets("Retroplanning").Select
        Selection.AutoFilter Field:=5, Criteria1:="Non démarée", Operator:=xlOr _
            , Criteria2:="="
        Range("B6:C100").Select
        Selection.Copy
     
    'on revient sur la feuille où l'on va coller le résultat
        Sheets("Suivi_Taches").Select
        Range("F20").Select
        ActiveSheet.Paste
        Sheets("Retroplanning").Select
        ActiveWindow.SmallScroll Down:=-78
        Range("F6:F101").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Suivi_Taches").Select
        Range("H20").Select
        ActiveSheet.Paste
        ActiveWindow.SmallScroll Down:=3
        Range("F20:H100").Select
        Application.CutCopyMode = False
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        Columns("I:I").Select
        Selection.Delete Shift:=xlToLeft
        Range("F20").Select
    End Sub
    Donc,j'essaie donc de coller le tout dans un fichier "resultat_jour_heure.xls" qui sera suivant le même format que la feuille "Suivi_Taches" du point de vue du dimensionnement des colonnes.

    Merci pour votre aide

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut Re: [VBA]Création fichier EXCEL et détection cellule vide
    Citation Envoyé par benoue
    Le problème est que dans certains cas, les cellules ne contiennent aucune valeur et donc ,j'aimerais que le résultat soit un message du type " Il ny'a aucune cellule répondant à vos critères" plutôt qu'un copier-coller de cellules à fond coloré et sans valeur.
    y as-t'il quelque chose au-dessus de la ligne 6 ?
    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
     
    (...)
    ' On filtre et on copie le résultat 
        Sheets("Retroplanning").Select 
        Selection.AutoFilter Field:=5, Criteria1:="Non démarée", Operator:=xlOr _ 
            , Criteria2:="=" 
    '---- Test si résultat
    IF WorksheetFunction.CountA(Range("B6:C100")) = 0
     MsgBox ("Aucun résultat ne conviennent !"
     exit sub
    endif
     
        Range("B6:C100").Select 
        Selection.Copy 
     
    'on revient sur la feuille où l'on va coller le résultat 
    (..)


    Citation Envoyé par benoue
    En plus,j'essaie en vain de coller ces résultats dans un autre classeur EXCEL dont le nom comporterait le jour et la date d'exécution de la macro pour assurer un suivi.
    Le classeur existe-t'il ? est-'il ouvert? ..

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    ** Au dessus de la ligne 6 , il y'a du texte de présentation du document.

    ** Non,le classeur n'existe pas. JE voudrais justement qu'il se crèe avec comme nom un nom du style "Suivi_jjmmyyy_hhmm" afin que si on exécute plusieurs fois la macro, on garde une trace des classeurs générs.
    Dernière chose, dans le répertoire courant où il y'a le classeur à partir duquel j'exécute la macro,il y'a un dossier "Suivi" et c'est dans ce dossier que j'aimerais placer les classeurs générés.

    Malhreusement, il n'a pas de chemin absolu, puisque l'outil est supposé êtr eenvoyable par mail.



    D'autre part, j'ai une erreur de syntaxe quand je rajoute la boucle "If"

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Voila:
    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
    ' On filtre et on copie le résultat
        Sheets("Retroplanning").Select
        Selection.AutoFilter Field:=5, Criteria1:="Non démarée", Operator:=xlOr _
            , Criteria2:="="
    '---- Test si résultat
    If WorksheetFunction.CountA(Range("B6:C100")) = 0 Then
     MsgBox ("Aucun résultat ne conviennent !")
     Exit Sub
    End If
    '... Avant la copie création du classeur
    Dim wS As Workbook 'Fichier source
    Dim wD As Workbook 'Fichier destination
    Set wS = ActiveWorkbook 'Mémorise classeur source
    wS.Sheets("Suivi_Taches").Copy 'Cré une copie du classeur
    Set wD = ActiveWorkbook 'Mémorise classeur Destination
    'redéfinit le nom de  fichier
    wD.SaveAs ThisWorkbook.Path & "\Suvi\Suvi_" & Format(Now, "ddmmyyy_hhmm")
     
     
    wS.Sheets("Retroplanning").Activate
    Range("B6:C100").Select
    Selection.Copy
    wD.Activate
     
    'on revient sur la feuille où l'on va coller le résultat
        Sheets("Suivi_Taches").Select
        Range("F20").Select
        ActiveSheet.Paste
     
    '(...)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'ai essayé ce code, mais j'ai une erreur de compilation ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ' On filtre et on copie le résultat 
        =====> Sheets("Retroplanning").Select
    De plus, le fichier excel qui est créé s'appelle "classeur1" et n'est pas dans le répertoire spécifié.

    D'autre part, comment faire une macro qui se lance automatiquement à l'ouverture du classeur ? Il y'a pleins de feuilles dans mon classeur et je veux qu'un utilisateur qui y arrive soit orienté directement vers la feuille "Accueil"

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Déjà, comme j'ai vu ça, je préfère le dire avant d'oublier...
    Evite de sélectionner tes colonnes dans

    Columns("F:F").Select
    Selection.ColumnWidth = 4.57
    et lignes suivantes. Un select ralentit les procédure, donc, à éviter au maximum.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Columns("F:F").ColumnWidth = 4.57
    "marche" aussi bien
    Tes questions :
    J'ai essayé ce code, mais j'ai une erreur de compilation ici
    Si tu es dans le bon classeur, que dans ce classeur tu as une feuille "Retroplanning", alors tu n'as pas d'erreur. Donc, l'une des deux conditions n'est pas remplie.
    De plus, le fichier excel qui est créé s'appelle "classeur1" et n'est pas dans le répertoire spécifié.
    Quand tu crées un fichier, il s'appelle toujours ClasseurQuelquechose
    Set wS = ActiveWorkbook se trouve trois lignes plus haut que la sauvegarde. Sans la ligne qui enregistre ton fichier, remplace ActiveWorkbook par wS
    Enfin, le nom définitif de ton fichier t'est donné par cette même ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wD.SaveAs wS.Path & "\Suvi\Suvi_" & Format(Now, "ddmmyyy_hhmm")
    Commence par là et dis-nous, on parlera ensuite Workbook_Open

    A+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour les "Select", j'ai modifié les lignes de code, ç aa effectivement l'air plus rapide déjà.

    Mais j'ai le même message d'erreur, et je me demande si ça ne vient pas du fait de l'activation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    (....)
    wD.Activate
    '=======================================
        Range("B6:C100").Select
        Selection.Copy
        Sheets("Suivi_Taches").Select
        Range("F20").Select
        ActiveSheet.Paste
        Sheets("Retroplanning").Select
    (...)
    La dernière ligne de code me produit une erreur de compilation, et je me dis que ça vient du "wD.Activate" qui va me placer sur le classeur destinataire qui lui n'a pas de feuille "Retroplanning".

    En fait, j'ai peut-être mal expliqué ce que je voulais faire.
    En fait,je filtre la feuille "Rétroplanning", je copie un certain espace que je colle dans mon fichier destinataire.
    Ensuite,je reviens sur la feuille "Retroplanning",je copie encore une autre colonne et je vais encore la copier dans mon fichier source (d'ailleurs, est-ce optimal ? Vaut-il mieux copier large dans "Retroplanning" et supprimer dans le fichier destinataire les colonnes qui ne m'intéressent pas ?)

    Une fois ces copier/coller achevé,je remets la feuille "Retroplanning" dans son état initial via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    '=======================================
        Sheets("Retroplanning").Select
        Selection.AutoFilter Field:=5
        '====================================

    Ainsi, à l'heure actuelle, mon code, c'est ça
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Sub Taches_NonDemarees()
     
    Sheets("Retroplanning").Select
    Selection.AutoFilter Field:=5, Criteria1:="Non démarée", Operator:=xlOr _
        , Criteria2:="="
     
    '---- Test si résultat
    If WorksheetFunction.CountA(Range("B6:C100")) = 0 Then
     MsgBox ("Aucun résultat ne convient !")
     Exit Sub
    End If
    '... Avant la copie création du classeur
    Dim wS As Workbook 'Fichier source
    Dim wD As Workbook 'Fichier destination
    Set wS = ActiveWorkbook 'Mémorise classeur source
    wS.Sheets("Suivi_Taches").Copy 'Crèe une copie du classeur
    Set wD = ActiveWorkbook 'Mémorise classeur Destination
    'redéfinit le nom de  fichier
    wD.SaveAs ThisWorkbook.Path & "\Suivi_taches\Taches_Non_Demarees_" & Format(Now, "ddmmyyy_hhmm")
     
    wS.Sheets("Retroplanning").Range("B6:C100").Copy
    wD.Activate
    Call Formater_Cellule
     
        Sheets("Suivi_Taches").Range("F20").PasteSpecial
        Sheets("Retroplanning").Select
        Range("F6:F101").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Suivi_Taches").Range("H20").PasteSpecial
        '=======================================
        Sheets("Retroplanning").Select
        Selection.AutoFilter Field:=5
        '====================================
        Sheets("Suivi_Taches").Select
        Range("F20:H100").Select
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
       Columns("I:I").Delete Shift:=xlToLeft
        Range("F20").Select
    End Sub


    Ce code crèe bien le fichier de sauvegarde, avec le bon nom, mais copie la feuille "Suivi_taches" du classeur source, alors que je veux copie la sélection après tri par critères de la feuille "Retroplanning".

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    ci joint une autre solution sans Select ni Activate pour le copier/coller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Retroplanning").Range("B6:C100").Copy
    Sheets("Suivi_Taches").Range("F20").PasteSpecial

    bonne journée
    michel

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par SilkyRoad
    bonjour

    ci joint une autre solution sans Select ni Activate pour le copier/coller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Retroplanning").Range("B6:C100").Copy
    Sheets("Suivi_Taches").Range("F20").PasteSpecial

    bonne journée
    michel
    oui mais les feuilles retroplanning et suivi_taches n'étant pas dans le même classeur ça marche pas !!

    donc tu peu t'inspirer de ce code est utiliser les variables Ws = Classeur Source et Wd = Classeur destination (nouveau classeur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ws.Sheets("Retroplanning").Range("B6:C100").Copy
    wd.Sheets("Suivi_Taches").Range("F20").PasteSpecial

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Sinon, quelqu'un a une idée pour l'arrivée sur une feuille particulière quand on ouvre un classeur ?

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    normalement tu arrive sur la feuille ou le classuer à été sauvé...

    tu peu aussi rajouter au une fonction à l'ouverture du classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
     Sheets("MAfeuille").Activate
    End Sub

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    C'est fou ça, ça ne marche pas.
    Je viens de rajouter la fonction et à l'ouverture,j'arrive toujours sur la feuille sur laquelle j'étais positionné avant fermeture.

    J'ai juste la demande d'activation des macros et après, j'arrive sur la feuill a vant-fermeture.

    Cette fonction se lance-t-elle toute seule réellement ?

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu n'as pas du la mettre au bon endroit ...! .. dans l'éditeur VBE .. clique avec bouton droit dans arborescence sur ThisWorkbook .. puis code...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Oouf, merci !
    ça marche maintenant..

    Il ne reste plus que le bug du haut et je serais comblé

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par benoue
    Oouf, merci !
    ça marche maintenant..

    Il ne reste plus que le bug du haut et je serais comblé
    Là aussi ,c'est bon, j'ai balisé le code de
    et partout où c'était nécessire afin qu'il se mette chaque fois sur le bon classeur !

    J'ai aussi rajouté la sauvegarde automatique à la fin.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Trop vite parler.

    Il reste que certaines valeurs copiées sont des références vers d'autres cellules.
    Donc,j'aimerais coller les "valeurs" des cellules et je pense qu'il faut juste modifier les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Taches").Range("A1").PasteSpecial
    en quelque chose d'autre....mais je ne sais pas en quoi !
    Help, c'est pour la soutenir la croissance

  17. #17
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PasteSpecial xlPasteValues

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Merci bien .
    Le schmilblick est bien avancé là

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Bonjour, c'est encore moi.

    Je veux maintenant qu'une cellule prenne une coloration donnée en fonction de la valeur d'une autre cellule.

    Pra exemple, quand la cellule A1 comporte "Demare", que la A2 se colore en fond bleu, automatiquement.
    Si la cellule A1 comporte "Reporte", que la A2 se colore en rouge, automatiquement.

    J4arrive à faire ça avec avec la mise en forme conditionnelle d'EXCEL, mais excel ne semble pas accepter plus de 3 solutions, or j'aimerais dépasser 3 conditions justement.

    Voici le code actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub coloriage_conditionnel()
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=$E2=""Demare"""
        Selection.FormatConditions(1).Font.ColorIndex = 2
        Selection.FormatConditions(1).Interior.ColorIndex = 41
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=$E2=""Cours"""
        Selection.FormatConditions(2).Font.ColorIndex = xlAutomatic
        Selection.FormatConditions(2).Interior.ColorIndex = 45
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=$E2=""Realise"""
        Selection.FormatConditions(3).Font.ColorIndex = xlAutomatic
        Selection.FormatConditions(3).Interior.ColorIndex = 50    
    End Sub
    Merci d'avance

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/01/2011, 14h36
  2. [VBA-E] Enregistrement fichier Excel
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/08/2006, 09h55
  3. [VBA-E]ouvrir fichier excel + boite dialogue VBA
    Par dananounette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 16h13
  4. [VBA]Envoyer un fichier excel avec OutLook
    Par Sunchaser dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2006, 16h24
  5. [VBA]Lien entre fichiers excel : Update en VBA
    Par criocaps dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2006, 09h07

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