Suppression sous condition et glissement

Bonjour,

quelqu'un pourrais-il me donner un code pour : dans une plage de cellule donnée, supprimer les cases vides et faire glisser les autres sur la gauche,

je vous joint un exemple en fichier joint

merci

https://www.excel-pratique.com/~files/doc/glissement.xls

Bonjour,

le tableau réel va de la ligne 6 à la ligne 1445 et de la colonne FT + 31

Ca veut bien dire de FT6 à GY1445 ?

Basiquement, tu peux essayer un code dans ce style :

Sub essai()
Dim i As Integer, j As Integer
Dim cel As Range
For i = 6 To 1445
    For j = 176 To 207
    With Cells(i, j)
        If .End(xlToRight).Column <= 207 Then
            If .Value = "" Then
            .Delete Shift:=xlToLeft
            j = j - 1
            End If
        End If
    End With
    Next j
Next i
End Sub

Re:

c exactement ce qu'il me faut, merci.

mais n'y a t'il pas moyen de l'accelerer car vu la taille du tableau, c assez long.

cordialement

Re:

Un petit soucis, elle est sensé s'aretter en colonne 208 mais elle continue jusqu'a 256 ?

Sub essai()
Dim i As Integer, j As Integer
Dim cel As Range
For i = 6 To 1445
    For j = 178 To 208
    With Cells(i, j)
        If .End(xlToRight).Column <= 208 Then
            If .Value = "" Then
            .Delete Shift:=xlToLeft
            j = j - 1
            End If
        End If
    End With
    Next j
Next i
End Sub

petite précision, désolé je n'y avais pas pensé, après le tableau, il y a quelque chose et le code doit s'aretter a la colonne 208

5donnees.zip (12.94 Ko)

Aïe !

En fait la macro fait pour chaque cellule vide, comme si tu faisais à la main "Edition/Supprimer/Décaler les cellules vers la gauche"

Donc ça doit te mettre un sacré bordel...

En restant sur la même optique, on peut faire un "Insertion/Cellules/Décaler vers la droite", en colonne HA par exemple, pour chaque cellule supprimée

Pour ce faire, dans le code après la ligne

j = j - 1

ajoute cette ligne :

Range("HA" & i).Insert Shift:=xlToRight

Pour la durée du traitement je sais pas, là j'ai pas d'autre idée.

et bien, je pensais que c'etais bon mais non.

1 elle va plus loin que la colonne 208 comme je t'ai dis plus haut

2 lorsque je dit vide, c'est vide de valeur mais il y a une formule dedans

en fait c celle qui ne sont pas égale a "1" qu'il faut supprimer ( la c'est de ma faute)

3 elle ne déplace pas les cellule vers la gauche, elle les copie.

4 elle commence a la 179

désolé, je suis ch....t

cordialement

Euh... Je suis un peu perdu là...

On a changé les règles ?

Tu peux faire passer un bout de ton fichier (style ligne 1 à 20) et la macro que tu as commencée ?

J'arrive pas à comprendre ce que tu veux avoir, et ce que tu as...

Pour supprimer tout ce qui n'est pas "1" ce sera :

If Not Cells(i,j).value = "1" Then

Pour le reste j'attends ton fichier...

maguetlolo a écrit :

lorsque je dit vide, c'est vide de valeur mais il y a une formule dedans

Ok ça je viens de comprendre...

Alors en l'état il y a un problème, ça te supprime pas la dernière cellule.

Je viens de faire un test sur un fichier un peu plus important qui me simule ton cas, effectivement c'est super long...

4donnees.zip (17.17 Ko)

Bonjour,

Juste une précision, faut-il garder les formules dans les cellules, ou on peut les supprimer, et ainsi avoir un tableau final?

ET surtout, comme le demande Sylvain, un autre fichier exemple, AVEC les formules, mêmes insignifiantes, et la taille de ton tableau (de quelle cellule à laquelle (DE A1 à IV3000)......)

Merci pour les précisions

Oui tu as raison, meme moi je ne sait plus ou j'en suis.

voici un bout de tableau pour repartir a zero

demande si tu as besoin d'explication, je ne suis pas tres doué pour expliquer ca

https://www.excel-pratique.com/~files/doc/glissement2.zip

je retire ce tableau car ce n'est pas celui que je voulais envoyer

pour repondre a felix

je n'ai plus besoins des formule apres, tant que j'ai mes cellule bleu

(le tableau est imprimé aussitot et fermé sans enregistrement je garde donc mes formule a chaque fois)

ai-je suffisamment expliqué?

je fais comme ca car je ne suis pas doué mais si vous avez une autre facon, je suis tout oui.

re:

je reflechi, mais je sait plus ou j'en suis.

je me demande quelque chose, au lieu de rusé comme je voulais le faire, n'y a t-il pas un code qui pourrais compter le nombre de fois ou (par exemple) la case de 09:37 est rouge (ou égale a " ") et colorier autant de case a la suite au bout du tableau?

Bonsoir,

si tu confirmes que tu ne dois pas enregistrer ton fichier final....

et que juste, l'aperçu te suffit

Avec ce code, tu supprimes les formules, et alignes toutes les cellules sur la gauche

Sub align()
Dim LaPlage As Range
Set LaPlage = Range("FV6:HA" & [FV65000].End(xlUp).Row)
    With LaPlage
        .Value = .Value
        .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
    End With
End Sub

Et je pense, qu'il est rapide

4tandav-v3.xlsm (55.13 Ko)
6fusion-base.xlsm (26.08 Ko)

ca a l'air d'etre bon, je l'essaierais demain au boulot

merci a vous pour ces reponses

, "HA" c'est la colonne ou il s'arette, c ca?

cordialement

ps: je vous tiens au courant demain

Mag a écrit :

n'y a t-il pas un code qui pourrais compter le nombre de fois ou (par exemple) la case de 09:37 est rouge (ou égale a " ")

Oui c'est aussi ce à quoi je pensais hier soir en allant me coucher.

la formule à utiliser est NB.SI(plage;critère)

Ensuite plutôt que de colorier des cellules tu peux créer un vrai graphique, qui sera plus lisible vu que tu vas récupérer le nom des séries. Et qui se mettra à jour automatiquement, donc tu peux le mettre sur une autre feuille et tu ne le détruit pas.

Exemple

Un bon exemple en tous cas de pourquoi il vaut mieux expliquer réellement ce qu'on veut faire et pourquoi (quand ce n'est pas Secret Défense), plutôt que de demander un bout de code qui va marcher mais qui ne sera pas optimisé

bonjour a tous

je confirme que la macro fonctionne bien

pour ce qui est du graphique, ton exemple me serviras surement a autre chose, je le garde.

mais la, c'est une demande de ma hierarchie alors........

mais c vrai que mes cellule colorié font pas mal, les celulles sont réduites a 1.5 de haut et 0.5 de large (pour que tout tienne sur une feuille A3, des colonnes sont masquées et d'autre sont reduites)

essai de multiplié l'exemple sur plus de ligne et réduit le comme j'ai dit plus haut. ca ressemble au graphe fait a la machine, je sait plus comment ca s'apelle. en fait dans ce cas, c'est pour voir les pics de défauts pendant l'activité. mais c'est une info parmis d'autre qui viens completer un suivi.

en tout cas, merci a vous.

cordialement

Rechercher des sujets similaires à "suppression condition glissement"