Réorganisation ligne excel
Résolu/Fermé
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
-
7 mai 2008 à 10:12
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 - 7 mai 2008 à 14:18
tony020422 Messages postés 445 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 19 janvier 2010 - 7 mai 2008 à 14:18
A voir également:
- Réorganisation ligne excel
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Partager photos en ligne - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
3 réponses
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
7 mai 2008 à 10:47
7 mai 2008 à 10:47
Bonjour
Dans excel, les lignes sont TOUJOURS numérotées de 1 à ..... Dans ton cas il y a certaines lignes de cachées (soit par choix , soit du à un tri)
Il faut que tu regardes de ce coté là
Dans excel, les lignes sont TOUJOURS numérotées de 1 à ..... Dans ton cas il y a certaines lignes de cachées (soit par choix , soit du à un tri)
Il faut que tu regardes de ce coté là
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
6
7 mai 2008 à 10:51
7 mai 2008 à 10:51
Bonjour
merci pour votre réponse!
En fait vous avez rasion les lignes non visibles ont été filtrées préalablement ..
Mais comment faire alors ?! car ce filtre est obligatoire et la "renumérotation" aussi...je ne sais comment faire pour que la macro fonctionne entre les 2 fichiers excel décalé par rapport aux indices de lignes..
En tout cas merci de vous intéresser à mon problème !
Peut etre est il possible de donner une autre piste de reflexion: le filtre permet de ne garder que les lignes dont la valeur vaut 241 dans une certaine colonne.. peut on mettre une condition avec suppression de lignes, par exsemple:
si ca ne vaut pas 241 alors supprime carrément la ligne; je ne sais pas si cela est faisable..
Merci !
merci pour votre réponse!
En fait vous avez rasion les lignes non visibles ont été filtrées préalablement ..
Mais comment faire alors ?! car ce filtre est obligatoire et la "renumérotation" aussi...je ne sais comment faire pour que la macro fonctionne entre les 2 fichiers excel décalé par rapport aux indices de lignes..
En tout cas merci de vous intéresser à mon problème !
Peut etre est il possible de donner une autre piste de reflexion: le filtre permet de ne garder que les lignes dont la valeur vaut 241 dans une certaine colonne.. peut on mettre une condition avec suppression de lignes, par exsemple:
si ca ne vaut pas 241 alors supprime carrément la ligne; je ne sais pas si cela est faisable..
Merci !
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
7 mai 2008 à 11:43
7 mai 2008 à 11:43
Effectivement sit les lignes qui ne contiennent pas la bonne valeur ne sont pas necessaires, il vaut mieux les effacer ensuite, le copier coller va fonctionner comme prevu.
Ou alors, au lieu de faire un copier/coller direct, il faudrait faire un copier/coller ligne par ligne avec une boucle à 2 indexs, un qui indiquerait la ligne de destination (que les lignes qui comprenne ta valeur 241) et l'autre qui balaye la page source
Ou alors, au lieu de faire un copier/coller direct, il faudrait faire un copier/coller ligne par ligne avec une boucle à 2 indexs, un qui indiquerait la ligne de destination (que les lignes qui comprenne ta valeur 241) et l'autre qui balaye la page source
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
6
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
7 mai 2008 à 11:53
7 mai 2008 à 11:53
merci pour ces infos mais je ne pense pas tout comprendre!
A priori il est possible de faire une boucle avec "if" pour enlever les lignes ne comportant autre chose que 241 en colonne 2
j'ai essayé ca sur mon excel de 2630 lignes..:
Sub delete_ligne()
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To 2630
If (Cells(i, 2) <> 241) Then
Cells(i, 1).EntireRow.Delete
i = i - 1
End If
Next
Application.ScreenUpdating = True
End Sub
Ca tourne a priori ( pas de mess d'erreur) mais ca tourne en rond a priori puisque 20 min aprés ca réfléchit tjs..je ne sais pas pourquoi..
si possible je préfererais d'abord dans la premère macro faire ca puis dans une seconde faire mon recherchev ect... pour ne pas faire les copier coller et surtout pouvoir directement supprimer les lignes inutiles..
Merci bcp en tout cas de m'aider ! !
A priori il est possible de faire une boucle avec "if" pour enlever les lignes ne comportant autre chose que 241 en colonne 2
j'ai essayé ca sur mon excel de 2630 lignes..:
Sub delete_ligne()
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To 2630
If (Cells(i, 2) <> 241) Then
Cells(i, 1).EntireRow.Delete
i = i - 1
End If
Next
Application.ScreenUpdating = True
End Sub
Ca tourne a priori ( pas de mess d'erreur) mais ca tourne en rond a priori puisque 20 min aprés ca réfléchit tjs..je ne sais pas pourquoi..
si possible je préfererais d'abord dans la premère macro faire ca puis dans une seconde faire mon recherchev ect... pour ne pas faire les copier coller et surtout pouvoir directement supprimer les lignes inutiles..
Merci bcp en tout cas de m'aider ! !
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
7 mai 2008 à 13:08
7 mai 2008 à 13:08
cela boucle à cause de cela
For i = 1 To 2630
puisque tu decrementes ton i, il n'arrive jamais à la fin
Tu devrais plutot faire une boucle do while avec un test sur cells(i,1).value <> "" pour t'arreter
For i = 1 To 2630
puisque tu decrementes ton i, il n'arrive jamais à la fin
Tu devrais plutot faire une boucle do while avec un test sur cells(i,1).value <> "" pour t'arreter
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
6
7 mai 2008 à 13:19
7 mai 2008 à 13:19
ok j 'ai compris mon erreur, merci ! !
Par contre ca ne suffirait pas de changer vers la fin le i=i-1 en i=i+1?
Si le réponse est non, pourrais tu m'envoyer stp un script qui marche nikel avec la base de mon programme car tu sembles gérer ca assez facilement alors que moi je galère dessus depuis hier!!
Par contre j'aimerais garder quoi qu il en soit la première ligne qui ne possède que des caractères (nom pièce, date panne...) dans chque colonne!
Merci en tt cas du fond du coeur pour ton aide ! ! !
Par contre ca ne suffirait pas de changer vers la fin le i=i-1 en i=i+1?
Si le réponse est non, pourrais tu m'envoyer stp un script qui marche nikel avec la base de mon programme car tu sembles gérer ca assez facilement alors que moi je galère dessus depuis hier!!
Par contre j'aimerais garder quoi qu il en soit la première ligne qui ne possède que des caractères (nom pièce, date panne...) dans chque colonne!
Merci en tt cas du fond du coeur pour ton aide ! ! !
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
7 mai 2008 à 13:24
7 mai 2008 à 13:24
Sub delete_ligne()
Dim i As Integer
i = 1
Application.ScreenUpdating = False
Do While Cells(i, 2) <> ""
If (Cells(i, 2) <> 241) Then
Cells(i, 1).EntireRow.Delete
Else
i = i + 1
End If
Loop
Application.ScreenUpdating = True
End Sub
A priori cela marche
Dim i As Integer
i = 1
Application.ScreenUpdating = False
Do While Cells(i, 2) <> ""
If (Cells(i, 2) <> 241) Then
Cells(i, 1).EntireRow.Delete
Else
i = i + 1
End If
Loop
Application.ScreenUpdating = True
End Sub
A priori cela marche
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
6
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
7 mai 2008 à 13:26
7 mai 2008 à 13:26
ouaou c 'est trop bien ca marche!!!!!!!!!!!!!!!!!!!!!!!!! mille mille merci!
Par contre si la taille du tableau varie( car celui ci est en fait nouveau tous les 15 j et les macros permettront de les trier directement) le programmen reste il el même ?!
enfin je souihaiterais garder la première ligne car celle ci contient les titres des colonnes!
Encore merci ! !
bonne journée ! !
Par contre si la taille du tableau varie( car celui ci est en fait nouveau tous les 15 j et les macros permettront de les trier directement) le programmen reste il el même ?!
enfin je souihaiterais garder la première ligne car celle ci contient les titres des colonnes!
Encore merci ! !
bonne journée ! !
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
7 mai 2008 à 13:30
7 mai 2008 à 13:30
en fait la seule chose qui est codé en dur dans la macro, c'est le numéro de colonne (2) donc tant que la valeur à tester reste dans cette colonne, il n'y aura pas de probleme
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
6
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
7 mai 2008 à 13:33
7 mai 2008 à 13:33
et pour la première ligne qui disparait également? comment faire pour la conserver?car elle contient les titres...
Merci!!!!
Merci!!!!
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
tony020422
Messages postés
445
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
19 janvier 2010
7 mai 2008 à 13:34
7 mai 2008 à 13:34
initialise ta variable I à 2 au lieu de 1 et tu ne traiteras pas la ligne d'entete