Début en VBA
Résolu/Fermé
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
-
15 mai 2020 à 22:04
captainfrag22150 Messages postés 7 Date d'inscription vendredi 15 mai 2020 Statut Membre Dernière intervention 19 mai 2020 - 19 mai 2020 à 00:11
captainfrag22150 Messages postés 7 Date d'inscription vendredi 15 mai 2020 Statut Membre Dernière intervention 19 mai 2020 - 19 mai 2020 à 00:11
A voir également:
- Début en VBA
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Le fichier à télécharger contient une liste de chats. triez-la comme dans le tableau ci-dessous (attention, on ne voit que le début…). quel est le mot formé par les 8 dernières lettres de la colonne code ? - Forum Word
- Touche début clavier ✓ - Forum PC portable
7 réponses
f894009
Messages postés
17224
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 janvier 2025
1 712
16 mai 2020 à 06:46
16 mai 2020 à 06:46
Bonjour,
destination prends bien une couleur
Par quel miracle, si cellule source n'a pas de couleur?
source est issue d'une mise en forme
Quelle est cette mise en forme?
destination prends bien une couleur
Par quel miracle, si cellule source n'a pas de couleur?
source est issue d'une mise en forme
Quelle est cette mise en forme?
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
16 mai 2020 à 08:11
16 mai 2020 à 08:11
Bonjour,
J'ajouterais que le VBA est un langage à utiliser sans la moindre erreur ce qui bloque le code voir les fonctions d'Excel
il est possible d'écrire un code de diverses façons à condition de respecter les règles strictes du langage
si on analyse ta formule
Sheets("feuille2").Cells(4, 1).Interieur.Color = Sheets("feuille1").Cells(4, 1).FormatConditions(1).interior.Color
plusieurs erreurs
Sheets("feuille2") feuille2 doit être le nom exact de l'onglet si tu ne l'as pas renommé c'est Feuil2
ensuite tu écris Interieur.Color c'est Interior
pour commencer je te conseille d'écrire en minuscule et si les termes sont juste la premièer occurrence se mettra automatiquement en majuscule
quelques exemples pour écrire ta ligne de code
Sheets("Feuil2").Cells(4, 1).Interior.Color = Sheets("Feuil1").Cells(4, 1).Interior.Color
ou
Sheets("Feuil2").Range("A4").Interior.Color = Sheets("Feuil1").Range("A4").Interior.Color
ou
Sheets(2).Range("A4").Interior.Color = Sheets(1).Range("A4").Interior.Color
ou encore
Sheets(2).[A4].Interior.Color = Sheets(1).[A4].Interior.Color
ou encore avec des plages nommées
[Cible2].Interior.Color = [Cible1].Interior.Color
si je peux me permettre, pour commencer en VBA il faut se fixer un objectif simple et utiliser un support papier avec des explications assez claire comme VBA pour les Nuls que je trouve pas trop mal écrit et facile à se repérer et qui ne mérite pas ce titre
J'ajouterais que le VBA est un langage à utiliser sans la moindre erreur ce qui bloque le code voir les fonctions d'Excel
il est possible d'écrire un code de diverses façons à condition de respecter les règles strictes du langage
si on analyse ta formule
Sheets("feuille2").Cells(4, 1).Interieur.Color = Sheets("feuille1").Cells(4, 1).FormatConditions(1).interior.Color
plusieurs erreurs
Sheets("feuille2") feuille2 doit être le nom exact de l'onglet si tu ne l'as pas renommé c'est Feuil2
ensuite tu écris Interieur.Color c'est Interior
pour commencer je te conseille d'écrire en minuscule et si les termes sont juste la premièer occurrence se mettra automatiquement en majuscule
quelques exemples pour écrire ta ligne de code
Sheets("Feuil2").Cells(4, 1).Interior.Color = Sheets("Feuil1").Cells(4, 1).Interior.Color
ou
Sheets("Feuil2").Range("A4").Interior.Color = Sheets("Feuil1").Range("A4").Interior.Color
ou
Sheets(2).Range("A4").Interior.Color = Sheets(1).Range("A4").Interior.Color
ou encore
Sheets(2).[A4].Interior.Color = Sheets(1).[A4].Interior.Color
ou encore avec des plages nommées
[Cible2].Interior.Color = [Cible1].Interior.Color
si je peux me permettre, pour commencer en VBA il faut se fixer un objectif simple et utiliser un support papier avec des explications assez claire comme VBA pour les Nuls que je trouve pas trop mal écrit et facile à se repérer et qui ne mérite pas ce titre
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
17 mai 2020 à 14:06
17 mai 2020 à 14:06
Merci beaucoup Mike-31 pour ta réponse rigoureuse, avec plusieurs solutions et explications.
J'ai compris les 3 premières possibilités d'écriture mais je pense que pour la 4° il me manque la notion nécessaire à nommer une plage en VBA. (à moins que la plage ne soit nommée via Excel ... il faut que je teste)
VBA pour les nuls ... assurément un bon début pour moi, je vais regarder ;)
J'ai compris les 3 premières possibilités d'écriture mais je pense que pour la 4° il me manque la notion nécessaire à nommer une plage en VBA. (à moins que la plage ne soit nommée via Excel ... il faut que je teste)
VBA pour les nuls ... assurément un bon début pour moi, je vais regarder ;)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
Modifié le 16 mai 2020 à 09:54
Modifié le 16 mai 2020 à 09:54
Bonjour à tous
Pour apprendre le VBA, il existe ce site particulièrement pédagogique et décontracté même s''il date (XL2003)
mais n'oublie pas ce dicton excellien:
AVANT DE PENSER VBA, PENSER EXCEL
Tu trouveras aussi des topos sur VBA Excel ici (niveau plus élevé)
En ce qui concerne ton problème actuel
il faut que tu recopies les conditions de mise en couleur sur la cellule cible (il y a mieux avec une macro parametrée mais c'est un 2° niveau)
Pour apprendre le VBA, il existe ce site particulièrement pédagogique et décontracté même s''il date (XL2003)
http://www.http//www.info-3000.com/vbvba/
mais n'oublie pas ce dicton excellien:
AVANT DE PENSER VBA, PENSER EXCEL
Tu trouveras aussi des topos sur VBA Excel ici (niveau plus élevé)
http://www.https//excel.developpez.com/cours/?page=prog#environnement
En ce qui concerne ton problème actuel
il faut que tu recopies les conditions de mise en couleur sur la cellule cible (il y a mieux avec une macro parametrée mais c'est un 2° niveau)
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
17 mai 2020 à 14:12
17 mai 2020 à 14:12
Merci Michel pour ces liens. Info-3000 va devenir pour un temps ma page de chevet :)
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
17 mai 2020 à 23:38
17 mai 2020 à 23:38
Bonsoir Michel_m.
Je me suis inscrit sur Developpez.com... Une mine d'or là aussi.
Merci beaucoup.
Je me suis inscrit sur Developpez.com... Une mine d'or là aussi.
Merci beaucoup.
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
17 mai 2020 à 14:18
17 mai 2020 à 14:18
Bonjour à tous,
Je ne peux pas recopier simplement la valeur de cellule source vers la cellule destination et appliquer sur la cellule destination la même mise en forme conditionnelle.
Mon objectif final est de recopier la couleur d'une cellule source vers ma cellule destination (mon premier post) et la seconde étape sera de recopier la valeur d'une autre cellule source toujours vers ma même cellule destination.
> Copier Feuil1 couleur A1 vers Feuil2 A1
> Copier Feuil1 valeur A2 vers Feuil2 A1
Merci à vous pour les réponses que vous m'avez apportées.
Je ne peux pas recopier simplement la valeur de cellule source vers la cellule destination et appliquer sur la cellule destination la même mise en forme conditionnelle.
Mon objectif final est de recopier la couleur d'une cellule source vers ma cellule destination (mon premier post) et la seconde étape sera de recopier la valeur d'une autre cellule source toujours vers ma même cellule destination.
> Copier Feuil1 couleur A1 vers Feuil2 A1
> Copier Feuil1 valeur A2 vers Feuil2 A1
Merci à vous pour les réponses que vous m'avez apportées.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
17 mai 2020 à 15:12
17 mai 2020 à 15:12
Re,
Là aussi plusieurs façon d'écrire le code, essaye comme cela
Sheets("Feuil2").Range("A1") = Sheets("Feuil1").Range("A2").Value
Sheets("Feuil2").Range("A1").Interior.Color = Sheets("Feuil1").Range("A1").Interior.Color
Là aussi plusieurs façon d'écrire le code, essaye comme cela
Sheets("Feuil2").Range("A1") = Sheets("Feuil1").Range("A2").Value
Sheets("Feuil2").Range("A1").Interior.Color = Sheets("Feuil1").Range("A1").Interior.Color
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
18 mai 2020 à 07:28
18 mai 2020 à 07:28
Bonjour,
attention que .FormatConditions(1).interior.Color te fourni la couleur définie pour la MFC, mais pas celle de la cellule. La MFC peut être appliquée... ou pas.
Pour avoir le résultat de toutes les MCF, appliquées ou pas, c'est :
eric
attention que .FormatConditions(1).interior.Color te fourni la couleur définie pour la MFC, mais pas celle de la cellule. La MFC peut être appliquée... ou pas.
Pour avoir le résultat de toutes les MCF, appliquées ou pas, c'est :
.DisplayFormat.Interior.Color
eric
captainfrag22150
Messages postés
7
Date d'inscription
vendredi 15 mai 2020
Statut
Membre
Dernière intervention
19 mai 2020
19 mai 2020 à 00:11
19 mai 2020 à 00:11
Merci Eric, c'est exactement cela.
Sheets("Feuil2").Cells(4, 1).Interior.Color = Sheets("Feuil1").Cells(4, 1).DisplayFormat.Interior.Color
BrainyCucumber
Messages postés
14
Date d'inscription
jeudi 14 mai 2020
Statut
Membre
Dernière intervention
16 mai 2020
Modifié le 16 mai 2020 à 12:35
Modifié le 16 mai 2020 à 12:35
Bonjour :)
Pourquoi ne pas copier simplement la valeur et affecter la même mise en forme conditionnelle dans la feuille2 ?
Cela donnerait simplement :
Sheets("feuille2").range("A1") = Sheets("feuille1").range("A1")
Et par ce biais vous obtiendrez avec la même mise en formes conditionnelles, la même couleur.
Pourquoi ne pas copier simplement la valeur et affecter la même mise en forme conditionnelle dans la feuille2 ?
Cela donnerait simplement :
Sheets("feuille2").range("A1") = Sheets("feuille1").range("A1")
Et par ce biais vous obtiendrez avec la même mise en formes conditionnelles, la même couleur.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
16 mai 2020 à 13:38
16 mai 2020 à 13:38
Bonjour,
Solutions déjà données ce matin : lire les post précédents ...
Solutions déjà données ce matin : lire les post précédents ...
17 mai 2020 à 14:01
la cellule source a un mise en forme conditionnelle définie dans Excel, selon la valeur de la case, 1=vert, 2 =rouge, 3 = orange.
En utilisant le code corrigé : (Merci Mike -31)
Lorsque dans la Feuil1 j'ai ma case en vert, une fois la macro lancée je n'obtient pas du rouge dans la Feuil2