Urgent MACRO POSSIBLE?

M

matteo91

Guest
Bonjour

j'ai un tableau (de A1 à C2)dont les données sont issues de formules SI.Le pb est que j'ai une ligne vide
Seule la ligne B est vide
pourriez m'expliquer s'il est possible de créer une macro me permettant de faire remonter automatiquant les lignes où des cellules sont présentes et faire disparaitre ces cellules vides

Cordialement
 
X

XC

Guest
Bonsoir Matteo91, tu vas te faire gronder ce soir!!

jamais d`urgent!

Bon sinon je vois pas trop ton pb. Tu veux effacer les lignes vides??

T`aurais pas un petit exemple avec plus de 2 lignes?

Bon sinon bonne soiree

XC
 
M

matteo91

Guest
Re:MACRO POSSIBLE?

visiblement la pj n'est pas jointe, je recommene [file name=coaching_20060218083258.zip size=2902]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/coaching_20060218083258.zip[/file]
 

Pièces jointes

  • coaching_20060218083258.zip
    2.8 KB · Affichages: 13

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:MACRO POSSIBLE?

Bonjour Matteo, XC, le Forum


Rien n'est urgent pour celui qui sait attendre ;)

Voici une macro qui fonctionnera si tu supprimes les formules et les valeurs contenues dans ton tableau en D26:E33...

Sub Analysis()
Dim Plage As Range, Cell As Range

   
With Sheets('Feuil1')
   
Set Plage = .Range(.Range('A2'), .Range('A65536').End(xlUp))
   
       
For Each Cell In Plage
           
If Cell.Offset(0, 1) = 1 Then
                .Range('D500').End(xlUp).Offset(1, 0) = Cell
           
End If
       
           
If Cell.Offset(0, 4) = 1 Then
                .Range('E500').End(xlUp).Offset(1, 0) = Cell
           
End If
       
Next
   
End With
End Sub


Bon Week End
[ol]@+Thierry[/ol]
 

Dan

XLDnaute Barbatruc
Re:MACRO POSSIBLE-supprimer cellule si vide

Bonjour Matteo, hello Thierry Amigos,

Thierry, j'étais justement en train de regarder le pb de Matteo, lorsque j'ai vu qu'entre temps tu étais passé par ici.
:sick: J'ai compris autre chose du pb. Ne s'agit-il pas de supprimer les cellules vides dans la range('A12:B20') pour avoir une présentation telle que celle donnée en D25 à E33.
A la lecture de ta macro, j'ai pas compris cela. :eek:

J'aurais écrit un truc du genre :
For each c in Range('A12:B20')
If c.value = '' then
c.Delete Shift:=xlUp
...

Mais peut être suis à coté de la plaque après tout...:unsure:

Message édité par: Dan, à: 18/02/2006 11:51
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:MACRO POSSIBLE-supprimer cellule si vide

Bonjour Dan, re Matteo, XC, le Forum

Salut Amigo !

Moi j'ai cru comprendre que Matteo avait fait un début par cascades de formules...qui lui remontaient quand même des Vides sur l'analyse de son tableau... Et qu'il pataugeait pour essayer de supprimer ces Vides par VBA..

Par ailleurs j'ai capté que le résultat escompté se trouvait en exemple dans le tableau du bas ( D26:E33)

Comme je conseille toujours pour les débutants (et les autres !!!) C'est d'éviter de faire dans l'Hybride (Formules + VBA) qui ne fait que rendre le truc ingérable... Soit on fait tout en Formules, soit on Fait tout en VBA...

Ma réponse est donc tout en VBA... et par conséquent le tableau final est totalement construit 'proprement' sans vide...

Je pense que nos 'Ténors' de Formules pourront aussi en proposer une qui ne passe pas par un nettoyage VBA...

Voilà pour ma contribution à ce problème et les éclaircissements que tu demandes Dan.

Bon Week End
[ol]@+Thierry[/ol]
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:MACRO POSSIBLE?

re Bonjour Matteo

C'est assez simple en fait, il suffit de mettre mon code dans un Module standard et de lui affecter un Bouton de lancement...

Voir modèle joint....

Bonne Découverte du VBA Matteo

[ol]@+Thierry[/ol] [file name=XLD_Coaching_Matteo.zip size=10072]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/XLD_Coaching_Matteo.zip[/file]
 

Pièces jointes

  • XLD_Coaching_Matteo.zip
    9.8 KB · Affichages: 14

Dan

XLDnaute Barbatruc
Re:MACRO POSSIBLE

re,

Eh bien Thierry bien joué !! Tu as gagné , heu..., une Duvel peut être ? :unsure:

Matteo, la macro que j'aurais placée ne s'exécutait que dans la plage A12 à B20, ce qui n'est pas ce que tu cherches apparamment. Sache aussi qu'elle n'était pas complète ici.

Je vais laisse le soin à mon ami Thierry de t'expliquer sa macro car bien que je la comprenne, il te l'expliquera encore mieux que moi !!

Si pb n'hésite pas

;)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:MACRO POSSIBLE

Re Dan, Matteo


Voici une version commentée :

Sub Analysis()
'Déclaration des Variable Objects de Type Range
Dim Plage As Range, Cell As Range

   
With Sheets('Feuil1')
   
'Définition de la plage dynamiquenent (colonne 'A' =Indicateurs
   
Set Plage = .Range(.Range('A2'), .Range('A65536').End(xlUp))
   
   
       
'Boucle pour scanner chaque cellule de cette plage
       
For Each Cell In Plage
       
           
'Condition 1 'Si la colonne 'B' contient un '1'
           
'('B' = 'A' décalé (Offset) de 0 ligne 1 Colonne
           
If Cell.Offset(0, 1) = 1 Then
               
               
'Si la condition est remplie, on reporte la Cellule
               
'vers Dernière ligne Vide de D
                .Range('D500').End(xlUp).Offset(1, 0) = Cell
           
End If
           
           
'Condition 2 'Si la colonne 'E' contient un '1' et idem que précédemment
           
If Cell.Offset(0, 4) = 1 Then
                .Range('E500').End(xlUp).Offset(1, 0) = Cell
           
End If
       
Next
   
End With
End Sub

Bon Samedi et Découverte du VBA
[ol]@+Thierry[/ol]
 

Discussions similaires

Réponses
4
Affichages
236