Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
Re
Voici une manière de faire sans macros (en copiant l'onglet au préalable)
1) Sélection de la page contenant les formules
2) Copier/Collage Valeurs seules
3) Selection (ligne par ligne)
4) F5/Cellules/Cellules vides
5) Supprimer -> Décaler cellules vers la gauche.
J'ai testé cela fonctionne
Pour plus de praticité, cette manip faite par VBA serait plus appropriée.
Je le laisse tester ce que cela donne avec l'enregistreur de macros (pour avoir le code de base)
Ensuite il faudra créer une boucle pour traiter chaque ligne.
EDITION: Le problème c'est qu'il faut "nettoyer" les cellules au préalable pour avoir des cellules vraiment vides
(Mais cela peut se faire rapidement en VBA)
Code:
Sub abc()
For Each c In Selection
If Len(c) = 0 Then
c.ClearContents
End If
Next c
End Sub
Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
Re
Voici le pendant VBA de mon précédent message
1) Sélection de la plage E3:Z6
2) puis lancer la macro Test
Code:
Sub Videdechezvide()
For Each c In Selection
If Len(c) = 0 Then
c.ClearContents
End If
Next c
End Sub
Code:
Sub Test()
Videdechezvide
For Each c In Selection
If c.Column = 5 Then
c.Resize(, 22).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
End If
Next c
End Sub
Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
Re,
Pour ma part, j'ai testé, il y a bien décalage des cellules de la ligne, vers la gauche, y compris les cellules vides.
J'ai beau renouveler, même résultat.
Qu'ai-je omis...
Tu as bien supprimé les formules ?
(avec un Copier/Coller Valeurs seules comme je l'écrivais dans mon précédent message)
Tu as bien sélectionné les cellules avant de lancer la macro Test ?
Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
J'avais remarqué tous les détails.
Enfin après moultes reprises et remous de réflexions... j'émerge!
Le bouton que j'avais créé ne doit pas être le bon,
J'ai mis en tête:
Private Sub CommandButton1_Click()
Videdechezvide
For Each c In Selection
If c.Column = 5 Then
c.Resize(, 22).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
End If
Next c
End Sub
et là c'est OK.
Merci Staple1600.
Est-ce gravissime ce "Private" ou ce choix de bouton?
Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
En creusant un peu plus... pourquoi tel bouton?
Tu auras compris que j'avais choisi le bouton Controles ActiveX
Essai en prenant le bouton Controles de formulaire, cela fonctionne avec:
Sub Test()
Videdechezvide
For Each c In Selection
If c.Column = 5 Then
c.Resize(, 22).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
End If
Next c
End Sub
Je ne connais pas la différence entre ces 2 boutons.
Re : Décaler vers gauche les cellules d'une ligne dès que la cellule précédente est v
Re
Tu as vu mon dernier conseil dans mon dernier message.
Tu diras bonjour à tes acides aminés quand tu les croiseras
PS: Il y aura sans doute quelques retouches à faire quand tu testeras sur ton fichier réel avec plein de lignes
- éviter d'utiliser Selection mais cela tu sais désormais déjà faire-> cf macro b - figer le rafraîchissement écran