Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business

|-  LOGICIELS


|||-  

Macro sous Excel : fusionner plrs cellules sous condition

 

1 utilisateur anonyme
Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

Macro sous Excel : fusionner plrs cellules sous condition

Prévenir les modérateurs en cas d'abus 
tiboqorl
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 07/12/2007 à 11:03:06  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour à tous,

 Je réalise en ce moment un fichier Excel avec des colonnes contenant des chiffres de la manière suivante :

 C1 * C2 = C3

 Cependant, parfois je dois indiquer à l'intérieur de C1 : "Non chiffré"

 Et dans ce cas là, j'aimerais que C1, C2 et C3 fusionnent, que "Non chiffré" apparaisse en centré et que le fond de la cellule soit grisé.

 Je n'y connais absoluement rien en macro. Mais je pense que c'est la seule façon d'obtenir ce que je désire.

 Quelqu'un aurait-il le temps de me faire un petit code ?

 Merci d'avance !

 Thibault

denger
  1. homepage
  2. config
denger
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 07/12/2007 à 12:26:46  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bonjour,
 je ne sais pas ce que tu entends par fusionner, sinon
 en c3 tu peux mettre la formule suivante =si(ou(c2="non chiffré;c3="non chiffré" );"non chiffré";c2*c3)
 puis ensuite tu vas dans format/ format conditionnelle et tu choisis la valeur de la cellule est égale à "non chiffré" et tu mets le format que tu souhaites dans ce cas là grisé gras en couleur
 lorsque tu auras "non chiffré" sur l'une ou l'autre des cellules en c3 tu retrouveras l'information en grisé comme tu l'as indiqué plus haut.
 @+ denger

(Publicité)
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 07/12/2007 à 16:37:15  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Salut Denger !

 Merci beaucoup pour ta réponse.

 Ce que j'entends par "fusionner" c'est : lorsqu'on sélectionne plusieurs cellule, menu "Format" -> "Cellule", onglet "Alignement" et sélection "Fusionner les cellules"

michel_m
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 08/12/2007 à 09:56:21  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour Thibo, denger

 proposition de macro qui se déclenche quand tu écris "non chiffré" dans cellule de A1 à Z1

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim col As Byte

 If Intersect(Target, Range("A1: Z1" )) Is Nothing Then: Exit Sub
 If Target = "non chiffré" Then
 col = Target.Column
 With Range(Cells(1, col), Cells(3, col))

.Merge

.Interior.ColorIndex = 15

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter
 End With

 End If
 End Sub

 comment faire ?

 pour accéder à vbe: alt+F11

 si l'explorateur de projet n'est pas affiché: ctrl+R

 clique dans la feuille où tu as ta formule (par ex: feuil1)

 copie-colle la macro ci dessus


---------------
Amicalement Michel
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 10/12/2007 à 16:49:15  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Salut michel_m !

 Merci beaucoup pour ta réponse.

 Hélas, après l'avoir copié/collé, elle ne semble pas fonctionner.

 Peut-être y a-t-il un bug ? Ou bien je ne sais pas...

 Si tu veux, je peux t'envoyer le fichier Excel (je suis sous Excel 2003) ?

 Merci encore pour ton aide.

 Thibault

(Publicité)
michel_m
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 10/12/2007 à 20:46:50  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bonsoir,

 Chez moi ça marchait ( je teste presque toujours avant d'envoyer)

 mets ton fichier(et surtout pas une image!) sur cjoint www.cjoint.com

 Si j'ai 5 minutes demain au boulot, je regarderai mais si d'autres forumeurs t'aident aussi, ca serait bien.


---------------
Amicalement Michel
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 11/12/2007 à 10:50:03  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour,

 Voici le lien : http://cjoint.com/data/mlkWS4BA6s.htm

 Merci encore ;)

michel_m
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 11/12/2007 à 12:26:50  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour Thibo,

 Le schisme venait que ton énoncé précisait les cellules en vertical (C1 à C3) au lieu d'horizontal (Dx à Fx). macro modifiée

 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim lig As long

 If Intersect(Target, Range("D:D" )) Is Nothing Then: Exit Sub
 If Target = "non chiffré" Then
 lig = Target.Row
 With Range(Cells(lig, 4), Cells(lig, 6))
 .Merge
 .Interior.ColorIndex = 15

 .HorizontalAlignment = xlCenter
 .VerticalAlignment = xlCenter
 End With

 End If
 End Sub

 attention: bien saisir "non chiffré" en minuscule ou alors
 a la place de
 If Target = "non chiffré" Then

 tu écris
 If Target = "non chiffré" OR Target="Non chiffré" Then

 Bon , c'est l'heure tant attendue:  :dine:


 :edit changé type variable "byte" à "Long"


---------------
Amicalement Michel
(Publicité)
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 11/12/2007 à 13:49:40  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Ça fonctionne !!!

 Merci beaucoup, c'est génial, et bon appétit ! Enfin plutôt bonne digestion maintenant ;)

 Thibault

 :edit [aussi lol] : Qu'est-ce que celà change le "Long" au lieu de "Byte" ?

michel_m
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 11/12/2007 à 14:54:24  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
re, après la sieste :sleep:  (vivement 5 heures at home ....)

 Byte ( 2^8)est le type de variable numérique limité à 256 nombres soit dans notre cas 256 lignes (comme on était au départ en colonne, le byte suffisait)

 Excel<2007 proposant 65536 lignes (2^16)il faut utiliser le type long qui va au -delà (je ne me souviens plus)

 le type integer va de - 32768 à 32767 (2^16


---------------
Amicalement Michel
  1. homepage
tiboqorl
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 12/12/2007 à 13:32:32  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Merci beaucoup pour la précision !

(Publicité)
gorfael
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 14/12/2007 à 22:41:52  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 

michel_m a écrit :

re, après la sieste :sleep:  (vivement 5 heures at home ....)

 Byte ( 2^8)est le type de variable numérique limité à 256 nombres soit dans notre cas 256 lignes (comme on était au départ en colonne, le byte suffisait)

 Excel<2007 proposant 65536 lignes (2^16)il faut utiliser le type long qui va au -delà (je ne me souviens plus)

 le type integer va de - 32768 à 32767 (2^16)


Salut à tous
 :lol: pour faire bisquer :
 Byte(octet) de 00000000 à 11111111 ou 00 à FF ou 0 à 255 (et pas 256, na !)
 entier : 2 octets donc pourrait aller de 0 à 65535. Mais comme les netiers dans Excel sont signés, le premier bit sert d'indicateur positif/négatif, ce qui fait que la limite est divisée par deux, ce qui explique la limite à -32768/+32767
 Mais c'est juste pour pinailler.
 A+

 Page :
1

Aller à :
 

Sujets relatifs
[Outlook] Comment fusionner plusieurs .pst ? amelioration macro loto (Nono)
excel: décalage automatique de texte dans colonne. Aide sur excel macro ?
peut on installer un même antivirus sur plrs PC ? Excel : proteger certaines cellules / annuler la protection (resolu)
Macro excel [Résolu] Affichage sous condition
Macro sur internet  
Plus de sujets relatifs à : Macro sous Excel : fusionner plrs cellules sous condition

Les 5 sujets de discussion précédents Nombre de réponses Dernier message
Word 2007 Résolu 7
Probleme accuse de reception avec Outlook... [resolu] 2
maj pour Ooo(merci ! maj réussite) 3
Word 2003 - problème pour conserver la date de mon courrier 4
Powerpoint : question sur le défilement des diapo 3