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

|-  LOGICIELS


|||-  

Excel2003: report colonnes RESOLU

 

2 utilisateurs anonymes et 99 utilisateurs inconnus
Ajouter une réponse
 

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

Excel2003: report colonnes RESOLU

Prévenir les modérateurs en cas d'abus 
JJ82
jj82
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 20/06/2011 à 08:04:22  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour,

 Je souhaiterais comme dans mon fichier exemple:

 http://cjoint.com/?AFukaqix6nh
 votre aide pour compter verticalement le nombre de cellules vertes et reporter à la droite du tableau le numéro (1 2 3 ...) de colonnes où les cellules sont vertes par ligne.

 Les vraies plages de mon tableau sont:
 numéros de colonnes à reporter (1 2 3 ....) en BL3:DJ403
 total vert en ligne BL404:DJ404
 report des numéros de colonnes: DK4:DO403

 Merci de vos astuces.




l'autre est mon miroir
bigdos
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 20/06/2011 à 08:22:03  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
honjour
 La réponse est différente selon qu'il s'agit de compter des couleurs mises par l'utilisateur ou s'il s'agit de couleur issues d'une Mise en Forme Conditionnelle (MFC).
 Les couleurs issue de MFC ne peuvent être comptées sur leur couleur, mais uniquement sur la condition de mise en forme.
 Dans beaucoup de cas, celà passe par une macro, cependant pour les conditions simples on arrive parfois à s'en tirer.
 Donc comment est attribuée la couleur aux cellules?

(Publicité)
willyplaisir
Expert Excel Habitué (de 5 000 à 9 999 messages postés)
  1. Posté le 20/06/2011 à 20:20:24  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bonsoir à tous,

 voici ma proposition à tester:
 http://www.cijoint.fr/cjlink.p [...] 6lPyD2.xls

 macro à adapter à tes lignes et colonnes.



 Public li, colonne, numero, c1(15, 6) As Integer

 'willy le 20 juin 2011
 Sub compter()
 Dim c1(15, 6)

 Application.ScreenUpdating = False
 compteur = 0


 For colonne = 8 To 14: compteur = 0
 If colonne = 9 Then GoTo suite
 For ligne = 4 To 18: k = 0
 If Cells(ligne, colonne).Interior.ColorIndex = 43 Then compteur = compteur + 1: k = 1

If k = 1 Then

Select Case colonne

Case Is = 8

numero = Range("H3" ) ' ou =15

li = ligne - 3: co = 1

If c1(li, co) = 0 Then c1(li, co) = numero

Case Is = 10

numero = Range("j3" )

li = ligne - 3: co = 2

If c1(li, co) = 0 Then c1(li, co) = numero

Case Is = 11

numero = Range("k3" )

li = ligne - 3: co = 3

If c1(li, co) = 0 Then c1(li, co) = numero

Case Is = 12

numero = Range("L3" )

li = ligne - 3: co = 4

If c1(li, co) = 0 Then c1(li, co) = numero

Case Is = 13

numero = Range("M3" )

li = ligne - 3: co = 5

If c1(li, co) = 0 Then c1(li, co) = numero

Case Is = 14

numero = Range("N3" )

li = ligne - 3: co = 6

If c1(li, co) = 0 Then c1(li, co) = numero
  Case Else

MsgBox "erreur de colonne!", vbCritical
 End Select


 End If


 Next
 Cells(ligne, colonne) = compteur

 suite:
 Next



 For i = 1 To 6   'colonnes
 For j = 1 To 15  'lignes

 Cells(j + 3, i + 14) = c1(j, i)
 Next
 Next

 ' affichage des numeros
 For li = 4 To 18
 col = 15
 Do While col < 21

 Do While Cells(li, col) = "" And col < 21
 col = col + 1
 Loop

 v = Cells(li, col): If col <> 15 Then Cells(li, col) = ""

 If col > 20 Then Exit Do
 Cells(li, k + 15) = v
 col = col + 1
 k = k + 1
 Loop
 k = 0

 Next

 Application.ScreenUpdating = True

 End Sub


 :salut:


---------------
[:ahlefoufou] Merci de sauver les chats abandonnés en aidant cette association : [:tazounet:5]
- Pension MillePattes
l'autre est mon miroir
bigdos
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 21/06/2011 à 08:35:24  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Bonjour Willyplaisir,

 je savais que tu allais passé et rien à dire le code vba est super.

 je pense que jj82 ne pouvait espérer mieux

 Encore bravo! et bonne journée

jj82
Sur la bonne voie (de 100 à 499 messages postés)
  1. Posté le 21/06/2011 à 08:37:30  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 

 Bonjour Willy, Bigdos

 Quoi dire sinon code VBA parfait ! et surtout merci!
 Bonne journée

(Publicité)
willyplaisir
Expert Excel Habitué (de 5 000 à 9 999 messages postés)
  1. Posté le 21/06/2011 à 12:15:07  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
bonjour,

 moi je bosse pour jj82 qui bosse pour Qui? :lol:

 Avec tes références, macro améliorée:
 voir le fichier ci-joint:

 http://www.cijoint.fr/cjlink.p [...] 3w7gJb.xls




 Sub comptertableau()
 Application.ScreenUpdating = False

 Dim tableau()
 co = 0: li = 0

 tco = Range("BL3:DJ3" ).Count   ' nombre de colonnes
 tli = Range("BL3:BL403" ).Count ' nombre de lignes
 debut = Range("A3:BL3" ).Count  ' première colonne
 fin = Range("A3:DJ3" ).Count    ' dernière colonne

 ReDim tableau(tli, tco)
 compteur = 0

 For colonne = debut To fin: compteur = 0
 ' on peut éviter certaines colonne ici 9=colonne I
 'If colonne = 9 Then GoTo suite

 For ligne = 3 To tli + 2: k = 0
 If Cells(ligne, colonne).Interior.ColorIndex = 43 Then compteur = compteur + 1: k = 1

 If k = 1 Then
  numero = Cells(2, colonne)
  li = ligne - 2: co = colonne - debut + 1
  If tableau(li, co) = 0 Then tableau(li, co) = numero
 End If

 Next

 Cells(ligne, colonne) = compteur

 suite:
 Next

 Range(Cells(3, fin + 1), Cells(tli + 2, fin + 1 + tco)).ClearContents

 For i = 1 To tco   'colonnes
 For j = 1 To tli  'lignes
 Cells(j + 2, i + fin) = tableau(j, i)
 Next
 Next

 ' affichage des numeros
 For li = 3 To tli + 2
 col = fin + 1    ' départ apport
 Do While col < fin + 1 + tco
 Do While Cells(li, col) = "" And col < fin + 1 + tco
 col = col + 1
 Loop
 If col = fin + 1 + tco Then GoTo suite1

 v = Cells(li, col): If col <> fin + 1 + tco Then Cells(li, col) = ""

 If col > fin + 1 + tco Then Exit Do
 Cells(li, k + fin + 1) = v
 col = col + 1
 k = k + 1
 suite1:
 Loop
 k = 0

 Next
 Application.ScreenUpdating = True
 MsgBox "Opération terminée", vbInformation

 End Sub

 :salut: bonne journée à tous!




---------------
[:ahlefoufou] Merci de sauver les chats abandonnés en aidant cette association : [:tazounet:5]
- Pension MillePattes
 Page :
1

Aller à :
 

Sujets relatifs
excel2003 resolu Xview cash report
EXCEL2003 - Retour à la ligne automatique (RESOLU) Faire défiler des colonnes dans Excel
Excel2003 excel : classer les feuilles/résolu
Excel2003  
Plus de sujets relatifs à : Excel2003: report colonnes RESOLU

Les 5 sujets de discussion précédents Nombre de réponses Dernier message
Cherche logiciel de cryptage désespérément [résolu] 9
envoi de message 1
[Résolu] Mise en forme capricieuse avec word 2003 5
Probleme Vcards (2.1) 1
probleme avec logiciel word 2007 8