extraire les cellules de couleurs

  • Initiateur de la discussion LolosPM
  • Date de début
L

LolosPM

Guest
Bonjour,

Je suis en train de secher completement sur ce sujet. j'ai eu beau tenter avec les fichiers présentés par les membres de ce forum, j' n'y arrive pas. je viens donc demander un peu d'aide.
*
Je gère un parc de machine monétique et j'ai crée des tableaux d'entrée sortie.

J'ai reussi ,grace à ce forum, à établir une petite macro qui distingue les doublons de numéro s de series. ainsi avec qq filtres élaborés, j'arrive à ce resultat. Les cellules de couleurs etant des numéros sortants.

je souhaiterais pouvoir extraire l'ensemble des cellules blanches (qui sont donc entrée mais pas sortie) sur une autre feuille.

j'ai bien tenté une macro 'Sonskriverez'qui me plaisait mais j'obtient une erreur 6 de depassement.

j'ai ténté les macros du FIL :
Lien supprimé

Mon fichier etant un fichier de mouvements, il peut référencer 33000 lignes. est ce un Pb? (sachant que mon stock tourne naturellement sur une semaine (1000 lignes)

Merci de votre aide
;)
 

Monique

Nous a quitté
Repose en paix
Bonjour,

On peut le faire par formule
Formule matricielle, à valider par ctrl, maj et entrée

Si tu as beaucoup de lignes, c'est plus prudent de nommer la formule
(ça utilise moins d'énergie) [file name=NoUniquesLolo.zip size=6378]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/NoUniquesLolo.zip[/file]

Message édité par: monique, à: 10/03/2006 18:18
 

Pièces jointes

  • NoUniquesLolo.zip
    6.2 KB · Affichages: 159

porcinet82

XLDnaute Barbatruc
Salut lolosPM, Monique,

Et bien Monique je vois qu'on a les memes inspirations aujourd'hui ;)

Une petite solutions par macro (j'ai supposé que tu ne voulais garder que les valeurs de la colonne E):
Code:
Sub test()
Dim i As Integer

Application.Goto Sheets('feuil1').Range('A1')
With Sheets('feuil1')
    For i = 2 To .Range('a65536').End(xlUp).Row
        If Not .Cells(i, 5).Interior.ColorIndex = 46 Then
            Sheets('feuil2').Range('A65536').End(xlUp).Offset(1, 0).Value = .Cells(i, 5).Value
        End If
    Next i
End With
End Sub

@+
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Lolo, bonsoir Monique, bonsoir Porcinet,
Bonsoir à toutes et à tous :)

Une autre solution par macro combinée avec une formule. Le but de la formule est de ne pas copier les lignes concernées en les scannant une par une, on entre donc la formule inverse de ta MEFC dans une colonne supplémentaire : =SI(NB.SI(E:E;En)=1;'X';'').

Ensuite, on effectue un tri sur cette colonne (après avoir fait un Copier/Collage spécial valeurs), de façon à remonter toutes les lignes dont les machines ne sont pas sorties. On fait en fait une copie sur la feuille 2 puis on nettoie avant de sortir ;-))

EDITION : Erreur de fichier :whistle:

A+ ;)

Message édité par: Charly2, à: 10/03/2006 22:08
 

Pièces jointes

  • lolosPM_V1.zip
    14.5 KB · Affichages: 57

Charly2

Nous a quittés en 2006
Repose en paix
re,

Si ça passe (3ème essai, j'avais pô vu les ‹›), suite et fin :p

Code:
Option Explicit

Option Base 1

Sub ExtraireMachinesNonSorties()
'
Dim oColAjout As Range
Dim TabCol, DerLigneNonSorties&
Dim OldCalculation&
'
  ' On empêche le rafraichissement d'écran et on modifie le mode
  ' de calcul (passage en manuel)
  With Application
    .ScreenUpdating = False
    OldCalculation = .Calculation
    .Calculation = xlCalculationManual
  End With
  '
  ' On détermine la première colonne vide à droite du tableau,
  ' et on initialise oColAjout en conséquence (1 colonne, nb de
  ' lignes du tableau)
  Set oColAjout = Range('IV1').End(xlToLeft).Offset(0, 1).Resize(Range('A65536').End(xlUp).Row, 1)
  '
  ' avec oColAjout
  With oColAjout
    '
    ' on place un titre sur la première ligne
    .Item(1) = 'Non sorties'
    '
    ' on entre la formule (voir MEFC) sur la 2ème ligne
    .Item(2).FormulaLocal = '=SI(NB.SI(E:E;E2)=1;''X'';'''')'
    '
    ' que l'on recopie jusqu'en bas du tableau
    .Item(2).AutoFill Destination:=.Item(2).Resize(.Rows.Count - 1, 1)
    '
    ' on lance le calcul uniquement pour cette colonne
    .Calculate
    '
    ' puis on fait un Copier/Collage spécial valeurs
    .Copy
    .PasteSpecial xlPasteValues
    '
    ' Tri du tableau en fonction de cette dernière colonne :
    ' suite au calcul de la formule, toutes les lignes sans
    ' doublon auront un 'X' dans la colonne ajoutée. On trie
    ' en fonction de cette colonne pour que tous les 'sans doublons'
    ' soient placés en haut du tableau.
    Range('A1').CurrentRegion.Sort key1:=.Item(2), order1:=xlDescending, header:=xlYes
    '
    ' on efface les données précédentes de Feuil2
    Sheets('Feuil2').Cells.Delete
    '
    ' puis on copie toutes les lignes du tableau dont la dernière
    ' colonne contient 'X' (mais sans copier cette dernière colonne)
    ' après avoir déterminé la dernière ligne contenant un 'X'
    TabCol = .Value
    For DerLigneNonSorties = 1 To (UBound(TabCol) - 1)
      If TabCol(DerLigneNonSorties + 1, 1) ‹› 'X' Then
        Exit For
      End If
    Next DerLigneNonSorties
    
    With .Item(1)
      Range('A1').Resize(DerLigneNonSorties, .Column - 1).Copy (Sheets('Feuil2').Range('A1'))
    End With
    '
    ' on supprime la colonne qui avait été ajoutée
    .Delete
  End With
  '
  ' puis on remet les chose en ordre avant de sortir ;-)))
  
  With Range('A1')
    .CurrentRegion.Sort key1:=Range('E2'), order1:=xlAscending, header:=xlYes
    .Select
  End With
  
  With Application
    .Calculation = OldCalculation
    .ScreenUpdating = True
  End With
  
End Sub

Et le fichier aussi :

[file name=lolosPM_V1_20060310223925.zip size=15353]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/lolosPM_V1_20060310223925.zip[/file]

Voilà ;)

A+
 

Pièces jointes

  • lolosPM_V1_20060310223925.zip
    15 KB · Affichages: 92
L

LolosPM

Guest
:) Nickel, je suis content du resultat global des macros indiqués.

encore merci , je vais me concentrer sur les sorties maintenant pour essayer d'extraire encore plus facilement des erreurs concernant les saisies de numéros de series.

:) MERCI !
 

amdur

XLDnaute Nouveau
Re : extraire les cellules de couleurs

Bonjour,

Je voudrais svp si vous me le permettez compliquer la tâche.

Mon but est de faire une extraction des cellules en couleur (le fond de la cellule étant en couleur) pour chaque colonne de haut en bas ensuite on passe à la deuxième colonne etc... pour toute ma base et disposer ces données ainsi que la couleur du fond de cellule sur une seule colonne avec en titre de la colonne ce que je souhaite et ceci dans une autre feuille de calcul.

Svp comment dois-je adapter la macro que vous proposez pour cela.


PS: Je suis novice en macro, svp quelque chose de simple à comprendre.


Merci d'avance pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Re : extraire les cellules de couleurs

Bonsoir à tous

amdur (Bienvenue sur le forum)
Pour commencer lis, ou relis, stp, la charte de forum
Une fois cela fait, tu auras compris qu'il est préférable de créer sa propre discussion plutôt que de ressortir un fil de 2006 (que tu n'as initié)
Je te laisse deviner ce qu'il te restera à ne pas omettre dans la discussion que logiquement tu devrais créer sous peu si ...
 

Staple1600

XLDnaute Barbatruc
Re : extraire les cellules de couleurs

Re


amdur
Pour information, la plupart des questions ont déjà été posées au moins une fois (ou presque;)) sur le forum ou ailleurs sur le web, sans doute parce que l'être humain avec un tableur dans les mains incline souvent à se poser les mêmes questions, à faire les même erreurs ou "un même usage par forcément le plus approprié" d'Excel.
Ceci posé, tu imagines si on devait ressortir des limbes les post similaires pour une nouvelle question aujourd'hui...
C'est pour cela que la charte dit bien (et ceci en point numéro 1)
Demandeur

1 – Un outil de recherche sur le forum permet de voir si la question a déjà été posée. Ne pas hésiter à l’utiliser.
Lien vers le moteur de recherche
Donc les archives sont là pour être consultés avant de poser sa question.
Si on trouve des discussion similaires, on cherche à y puiser des conseils/astuces/solutions.
Si malgré cela on est bloqué alors on pose sa propre question en créant sa propre discussion (en prenant le soin si on y pense de dire qu'on a fait des recherches sur le forum, on peut même mettre des liens vers ces discussions similaires) et on n'oublie pas de joindre sa propre pièce jointe.

Donc si tu as pris le temps de bien lire mon message, je devrais te retrouver toi et ton fichier exemple dans ta nouvelle discussion, mais surtout pas ici. :eek:;)
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry