Début en VBA
Résolu
captainfrag22150
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
captainfrag22150 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
captainfrag22150 Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Début en VBA
- Debut logiciel de capture video - Télécharger - TV & Vidéo
- Excel compter cellule couleur sans vba - Guide
- Touche début clavier ✓ - Forum Clavier
- Touche debut pc - Forum Excel
- Find vba - Astuces et Solutions
7 réponses
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?
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
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 ;)
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)
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
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
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
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.
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