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


  


  Macro sous Excel : fusionner plrs cellules sous condition

 

Il y a 434 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse

 Mot :  Pseudo :  
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 
n°1379618
tiboqorl
Posté le 07-12-2007 à 11:03:06  answer
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

n°1379619
denger
Posté le 07-12-2007 à 12:26:46  answerhomepage
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

n°1379620
tiboqorl
Posté le 07-12-2007 à 16:37:15  answer
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"

n°1379621
michel_m
Posté le 08-12-2007 à 09:56:21  answer
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
n°1379622
tiboqorl
Posté le 10-12-2007 à 16:49:15  answer
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

n°1379623
michel_m
Posté le 10-12-2007 à 20:46:50  answer
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.

n°1379624
tiboqorl
Posté le 11-12-2007 à 10:50:03  answer
Prévenir les modérateurs en cas d'abus
 

Bonjour,

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

 Merci encore ;)

n°1379625
michel_m
Posté le 11-12-2007 à 12:26:50  answer
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"

n°1379626
tiboqorl
Posté le 11-12-2007 à 13:49:40  answer
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" ?

n°1379627
michel_m
Posté le 11-12-2007 à 14:54:24  answer
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
n°1379628
tiboqorl
Posté le 12-12-2007 à 13:32:32  answer
Prévenir les modérateurs en cas d'abus
 

Merci beaucoup pour la précision !

n°1379629
Gorfael
Posté le 14-12-2007 à 22:41:52  answer
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 à :
Ajouter une réponse
  


  


  Macro sous Excel : fusionner plrs cellules sous condition

 

Sujets relatifs
Excel: empêcher @ mèl en lien hypertexteexel, macro qui colle tous seul
Excel, modification macro du n°501aide pour macro faisant 2 actions
Nombre de formats de cellules....trop élévé (résolu)excel clic droit de souris dans une macro [Résolu]
insertion de macro dans excel 2007 sous vistaWord - Macro pour ouverture de fichiers
Word-Macroexcel macro qui déprotège, trie puis reprotège [Résolu]
macro open officecomment fusionner deux partitions?
Probleme Counter Strike 1.6 & Condition Zeropeut on installer un même antivirus sur plrs PC ?
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 06-12-2007 à 19:37:59
Probleme accuse de reception avec Outlook... [resolu] 2 08-12-2007 à 19:24:55
maj pour Ooo(merci ! maj réussite) 3 19-12-2007 à 18:12:52
Word 2003 - problème pour conserver la date de mon courrier 4 06-12-2007 à 21:23:47
Powerpoint : question sur le défilement des diapo 3 11-12-2007 à 09:07:50

Recevez toute
l’actu du forum !