Excel - Valeur Zero et suppression
Fermé
EmilieM
-
31 mars 2010 à 16:47
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 25 mai 2010 à 12:01
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 25 mai 2010 à 12:01
A voir également:
- Excel - Valeur Zero et suppression
- Remettre a zero un pc - Guide
- Forcer suppression fichier - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
12 réponses
Iama
Messages postés
319
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
27 mars 2020
14
31 mars 2010 à 17:24
31 mars 2010 à 17:24
Bonjours
Si j'ai bien compris:
En prennant ton exemple
Dans la colonne A tu veux supprimer le 0 en 2éme ligne, que le 3 prenne sa place.
et dans la B, le 4 doit prendre la place du 3?
iama
Si j'ai bien compris:
En prennant ton exemple
Dans la colonne A tu veux supprimer le 0 en 2éme ligne, que le 3 prenne sa place.
et dans la B, le 4 doit prendre la place du 3?
iama
Iama
Messages postés
319
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
27 mars 2020
14
31 mars 2010 à 17:38
31 mars 2010 à 17:38
OK
A coté ( Avant) de ta colonne tu insert au besoin une colonne.
Tu increment ces cellules de 1 à n.
Tu selectionne les 2 colonnes, que tu trie par ordre chronologie de la colonne A,
tu suprime les premiére cellules de la colonne qui contienne 0,
ensuite tu reselectionne les deux colonnes que tu trie en fonction de la colonne contenant les chiffre de 1 à n par ordre chronologique.
PS avant fais la sauvegarde de sécurité
iama
A coté ( Avant) de ta colonne tu insert au besoin une colonne.
Tu increment ces cellules de 1 à n.
Tu selectionne les 2 colonnes, que tu trie par ordre chronologie de la colonne A,
tu suprime les premiére cellules de la colonne qui contienne 0,
ensuite tu reselectionne les deux colonnes que tu trie en fonction de la colonne contenant les chiffre de 1 à n par ordre chronologique.
PS avant fais la sauvegarde de sécurité
iama
Iama
Messages postés
319
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
27 mars 2020
14
31 mars 2010 à 17:53
31 mars 2010 à 17:53
Correctif
Tu supprime les cellule de la colonne A et de l'autre.
Tu supprime les cellule de la colonne A et de l'autre.
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
31 mars 2010 à 21:35
31 mars 2010 à 21:35
Salut,
Ce problème doit se traiter en VBA, dans mon code, la plage à traiter commence en A2
Colles ce code dans un module et associes le à un bouton. Si tu as un problème fais signe
Sub test()
Dim Lig As Long
Dim LigFinA As Long
Dim Col As Integer
Dim NbrLig As Long
Const PremLig = 2 'Première ligne à traiter
Col = 1 'colonne à traiter
LigFinA = Range("A65536").End(xlUp).Row + 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = PremLig To NbrLig
If .Cells(Lig, Col).Value = 0 Then
Cells(Lig, Col + 1) = Cells(Lig + 1, Col)
End If
Next
End With
MsgBox ("MODIFICATION EFFECTUE")
End Sub
Ce problème doit se traiter en VBA, dans mon code, la plage à traiter commence en A2
Colles ce code dans un module et associes le à un bouton. Si tu as un problème fais signe
Sub test()
Dim Lig As Long
Dim LigFinA As Long
Dim Col As Integer
Dim NbrLig As Long
Const PremLig = 2 'Première ligne à traiter
Col = 1 'colonne à traiter
LigFinA = Range("A65536").End(xlUp).Row + 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = PremLig To NbrLig
If .Cells(Lig, Col).Value = 0 Then
Cells(Lig, Col + 1) = Cells(Lig + 1, Col)
End If
Next
End With
MsgBox ("MODIFICATION EFFECTUE")
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
31 mars 2010 à 23:48
31 mars 2010 à 23:48
Re,
J'ai lu en diagonale testes plutôt ce code et on verra demain pour l'alléger
Sub Macro1()
Dim Lig As Long
Dim LigFinA As Long
Dim Col As Integer
Dim NbrLig As Long
Const PremLig = 2 'Première ligne à traiter
Col = 2 'colonne à traiter
Range("A2", Range("A65536").End(xlUp)).Copy
Range("A2").Offset(0, 1).Select
ActiveSheet.Paste
LigFinA = Range("B65536").End(xlUp).Row + 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = PremLig To NbrLig
If .Cells(Lig, Col).Value = 0 Then
Cells(Lig, Col).Delete Shift:=xlUp
End If
Next
End With
MsgBox ("MODIFICATION EFFECTUE")
End Sub
J'ai lu en diagonale testes plutôt ce code et on verra demain pour l'alléger
Sub Macro1()
Dim Lig As Long
Dim LigFinA As Long
Dim Col As Integer
Dim NbrLig As Long
Const PremLig = 2 'Première ligne à traiter
Col = 2 'colonne à traiter
Range("A2", Range("A65536").End(xlUp)).Copy
Range("A2").Offset(0, 1).Select
ActiveSheet.Paste
LigFinA = Range("B65536").End(xlUp).Row + 1
With Sheets("Feuil1")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = PremLig To NbrLig
If .Cells(Lig, Col).Value = 0 Then
Cells(Lig, Col).Delete Shift:=xlUp
End If
Next
End With
MsgBox ("MODIFICATION EFFECTUE")
End Sub
Bonjour,
La macro de Mike fonctionne mais je souhaiterai avoir la méme macro qui s'applique au colonne H et I avec H comme colonne source et I comme colonne de destination. Cela est il possible?
Emilie.
La macro de Mike fonctionne mais je souhaiterai avoir la méme macro qui s'applique au colonne H et I avec H comme colonne source et I comme colonne de destination. Cela est il possible?
Emilie.
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
1 avril 2010 à 10:06
1 avril 2010 à 10:06
Re,
Comme je te l'ai dit, si c'est ce que tu cherches je reverrai le code rapidement écrit et les deux zéro ne posent pas de problème.
Pour ne pas écrire plusieurs codes, que veux tu exactement que le code s'applique colonne A et retranscrit les valeurs en B et la même chose pour la colonne H et retranscrit en I ou simplement retranscrire les valeurs de H en I
Comme je te l'ai dit, si c'est ce que tu cherches je reverrai le code rapidement écrit et les deux zéro ne posent pas de problème.
Pour ne pas écrire plusieurs codes, que veux tu exactement que le code s'applique colonne A et retranscrit les valeurs en B et la même chose pour la colonne H et retranscrit en I ou simplement retranscrire les valeurs de H en I
Oui, je souhaiterai que si j'ai 2 zéros cela les supprime et que ca remonte les ligne au nombre De Zéro présent. Si j'en ai 3 que ca remonte de 3 lignes, etc....
Pour les colonnes peut importe je modifirai la macro en fonction de mes besoins.
Pour les colonnes peut importe je modifirai la macro en fonction de mes besoins.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
2 avril 2010 à 07:53
2 avril 2010 à 07:53
Bonjour,
Pour plus d'efficacité et par respect des intervenants évite les doublons ou bien signale-le par un lien.
Voir ici
eric
Pour plus d'efficacité et par respect des intervenants évite les doublons ou bien signale-le par un lien.
Voir ici
eric
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
2 avril 2010 à 11:14
2 avril 2010 à 11:14
Re,
Effectivement, ouvrir plusieurs discussions n'est pas la chose à faire, salut Eriiic
regardes ce code qui recopiera les données de la cellule A2 à la dernière cellule non vide de la colonne A, pour les retranscrire en B et supprimer les données égale à 0 en conservant les autres données et les cellules vides. S'il faut traiter les cellules vides comme les cellules contenant la valeur 0, ce n'est pas un problème.
De même pour l'adapter à une colonne bien précise.
Sub Macro1()
Range([A2], [A65000].End(xlUp)).Copy
[A2].Offset(0, 1).Select
ActiveSheet.Paste
Do While WorksheetFunction.CountIf(Selection, 0) <> 0
For Each Cell In Selection
If Cell.Value <> "" And Cell.Value = 0 Then
Cell.Delete Shift:=xlUp '
End If
Next
Loop
MsgBox ("MODIFICATION EFFECTUE")
End Sub
Effectivement, ouvrir plusieurs discussions n'est pas la chose à faire, salut Eriiic
regardes ce code qui recopiera les données de la cellule A2 à la dernière cellule non vide de la colonne A, pour les retranscrire en B et supprimer les données égale à 0 en conservant les autres données et les cellules vides. S'il faut traiter les cellules vides comme les cellules contenant la valeur 0, ce n'est pas un problème.
De même pour l'adapter à une colonne bien précise.
Sub Macro1()
Range([A2], [A65000].End(xlUp)).Copy
[A2].Offset(0, 1).Select
ActiveSheet.Paste
Do While WorksheetFunction.CountIf(Selection, 0) <> 0
For Each Cell In Selection
If Cell.Value <> "" And Cell.Value = 0 Then
Cell.Delete Shift:=xlUp '
End If
Next
Loop
MsgBox ("MODIFICATION EFFECTUE")
End Sub
EmilieM
Messages postés
20
Date d'inscription
jeudi 25 mars 2010
Statut
Membre
Dernière intervention
2 juin 2010
25 mai 2010 à 09:59
25 mai 2010 à 09:59
Bonjour,
Je reprend cette discution car je souhaiterai effectuer la méme chose mais au lieu de supprimer les cellules égales à 0 je voudrai supprimer les cellules vides. Serait il possible de me stipuler ce qui étre modifié dans la macro précédente?
Emilie.
Je reprend cette discution car je souhaiterai effectuer la méme chose mais au lieu de supprimer les cellules égales à 0 je voudrai supprimer les cellules vides. Serait il possible de me stipuler ce qui étre modifié dans la macro précédente?
Emilie.
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
25 mai 2010 à 12:01
25 mai 2010 à 12:01
Re,
tout simplement comme cela
Sub Macro1()
Range([A2], [A65000].End(xlUp)).Select '.Copy
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
tout simplement comme cela
Sub Macro1()
Range([A2], [A65000].End(xlUp)).Select '.Copy
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
End Sub
31 mars 2010 à 17:28
dans l'exemple donné, A est la colonne de départ, avec les 0, et B est le résultat escompté.