Excel Problème de liste

Résolu/Fermé
Lucie - 11 mars 2009 à 19:02
 Lucie - 16 mars 2009 à 13:16
Bonjour,
Je ne sais pas comment m'y prendre pour modifier une liste.
Sur certaines lignes , j'en ai deux mais je souhaiterai qu'une ligne.
J'ai mis un exemple
http://www.cijoint.fr/cjlink.php?file=cj200903/cijgk4OGGR.xls
Merci. Un petit coup de pouce serai bienvenue.
A voir également:

8 réponses

Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
12 mars 2009 à 05:26
J'utillise ton fichier-exemple, et j'affiche les résultats en colonne E.
Les 3 premières cellules restent vides.
La cellule E4 aura comme formule =SI(A6=0;A4&A5;SI(A5=0;A4;""))
La cellule E5 aura comme formule =SI(ET(A2=0;A7=0);A5&A6;SI(ET(A2=0;A6=0);A5;""))
Cette formule sera recopiée vers le bas jusqu'à la dernière ligne.
0
Bonjour , Raymond PENTIER,
J'ai mis la 1° formule en E4 " =SI(A6=0;A4&A5;SI(A5=0;A4;"")) ",
J'ai mis la 2° formule en E5 " =SI(ET(A2=0;A7=0);A5&A6;SI(ET(A2=0;A6=0);A5;"")) " ,
j'ai recopié la 2° formule vers le bas et j'ai eu un décalage de ligne.
Exemple, j'ai eu la ligne en E13 au lieu de E12 ..........en E27 au lieu de E24.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijjeBUNhA.xls
Ai-je mal appliquée la formule?
Merci.
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
12 mars 2009 à 16:06
Non, non, c'est exactement ce que j'ai fait.
Mais disons que je n'ai su répondre qu'à la moitié de ton probléme, à savoir mettre dans une seule cellule E22 le contenu des cellules A22 et A23.
Par contre, supprimer des cellules pour avoir des intervalles réguliers, je n'avais pas perçu que c'était le reste de ta question, et a priori je ne vois pas bien comment faire, sauf avec une macro ; mais VBA, je ne connais pas ...
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
12 mars 2009 à 17:04
En attendant qu'un praticien de VBA te trouve quelque chose de
"techniquement correct", je peux te proposer un petit "bidouillage" ( à faire sur une COPIE de ton fichier ! ):

* Saisir 2 dans la cellule C2.
* Saisir =SI(D2>9999;C1+1;C2+1) dans la cellule C3 et recopier vers le bas.
* Saisir =SI(A3="";C2+9999;C2) en D2 et recopier dans D3 et D4.
* Saisir =SI(ET(A2="";A6="");C5+9999;C5) en D5 et recopier vers le bas.
* Avant de trier, il faut remplacer les formules par la valeur des résultats : Sélectionner les colonnes C et D, faire COPIER, faire COLLAGE SPECIAL VALEURS UNIQUEMENT.
* Trier l'ensemble du fichier par rapport à la colonne D. Masquer les colonnes C et D.

https://www.cjoint.com/?dorwa2n3fN
Je sais, ça fait plutôt bricolage, mais ça marche, et ça peut te dépanner en attendant mieux ...
0
Bonjour, Raymond PENTIER
Merci à vous, mais cela à l'air compliqué à mettre en œuvre sur une très longue liste.
Oui, c'est bien çà , une fois les deux lignes regroupés.
Je voudrai garder le même intervalle avec :
- le numéro
- le mot
- la ligne regroupée
- la ligne vide...
j'ai pas compris pourquoi sur l'onglet trié à la cellule D27 = 31 et D28 = 1008 etc.
Comment appliquer sur toute mes lignes ?
Merci
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
12 mars 2009 à 23:40
Bonjour, Lucie.

Tu as oublié de prèciser, en posant ton problème, si tu étais débutante ou expérimentée sur Excel.
Moi, j'ai présumé que, pour affronter un cas aussi inhabituel et pas si simple que ça, tu n'en étais pas à tes premiers pas. Mais ton commentaire "cela à l'air compliqué à mettre en œuvre sur une très longue liste" me laisse perplexe ; recopier une formule sur 10 ou 2000 lignes, c'est pareil ; trier sur 10 ou 2000 lignes, c'est pareil.
Quant aux lignes 28 et suivantes de l'exemple, ce sont les lignes éliminées par notre tri ; tu les gardes, tu les masques, tu les effaces, à ton choix !
0
Bonjour, Raymond PENTIER.
Eh! oui, je suis bel et bien une débutante à Excel.
C'est les colonnes C et D qui m'ont perturbée avec une cellule à 31 et 1008; que je peux effacer.
J'ai bien tirée la formule à partir de E24 jusqu'à la fin de ma liste.
ce qui me regroupe bien les deux lignes de textes;
mais il y a des lignes vides en plus qui modifie les intervalles.
Je voudrai avoir que 4 lignes affichées, à la suite comme :
- le numéro,
- le mot,
- la ligne regroupée
- la ligne vide.
Et, ainsi de suite ...
Merci.
0
Lucie > Lucie
13 mars 2009 à 14:51
Bonjour,
Une fois que les deux lignes sont ensemble.
Peut-on supprimer les lignes vides avec formule ou macro?
j'ai trouvé sur le net une macro que je ne sais pas comment appliquer :
Sub SuppLigneVides() With ActiveSheet.UsedRange derLi = .Row + .Rows.Count - 1 End With Application.ScreenUpdating = False For r = derLi To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r End Sub
Ensuite , les lignes sont regroupées et avoir une formule pour replacer la ligne tout les 4 d'intervalles.
Je crois qu'on se complique bien la vie , quand on pourrait faire plus simple ?
Merci.
0
Lucie > Lucie
13 mars 2009 à 15:41
Bonjour,
Je mets une autre macro du net,si cela peut être utile.
Sub supp()
Dim Cel_vide As Range
Dim ad_cel As Integer

For Each Cel_vide In Range('A1:A21000')
If Cel_vide.Value = '' Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete
End If
Next Cel_vide
End Sub
Mais je ne sais m'en servir...
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
13 mars 2009 à 19:16
Post 7 : "J'ai bien tirée la formule à partir de E24 jusqu'à la fin de ma liste ce qui me regroupe bien les deux lignes de textes; mais il y a des lignes vides en plus qui modifie les intervalles"
Écrire "il y a des lignes vides en plus" ne suffit vraiment pas comme explication ! Quelle conclusion puis-je en tirer ? Fais comme d'habitude : joins ton dernier fichier, avec ces modifications.

Posts 8 & 9 : Au post 3 j'ai indiqué que je ne vois pas bien comment faire, sauf avec une macro ; mais VBA, je ne connais pas ... ; donc j'en suis au même point que toi !
0
Bonjour,
En attendant que quelqu'un si connaisse en VBA et trouve la solution.
J'essaye de trouver une solution, mais je n' y arrive pas.
j'ai mis un nouvel exemple car je pense peut-être sur la bonne voie.
http://www.cijoint.fr/cjlink.php?file=cj200903/cijrk3NWHe.xls
Cdt.
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
15 mars 2009 à 03:21
Lucie, je crois que je vais laisser tomber !

Tu me fais voir un fichier abracadabrant où tu en es restée à mon premier brouillon du post 1 !

Or je t'ai proposé, depuis le post 4 du 12 mars, une procédure qui te donne exactement le résultat que tu souhaitais. Ton post 7 prouve que tu ne l'as pas appliquée comme il faut. Mais tu ne me fais pas voir ton essai.

De plus tu cites (posts 8 et 9) des macros dont ni toi ni moi ne savons comment elles fonctionnent.

Et au post 11 tu redémarres sur des manipulations qui n'ont aucune chance d'aboutir ...

Alors ou tu reprends très exactement, sans rien oublier et rien modifier, les consignes du post 4, et on vérifie ensemble ce qui pourrait ne pas marcher, ou je cesse de perdre mon temps.
0
Bonjour, Raymond PENTIER,
J'ai du pas bien comprendre comment bien appliquer le post 4.
Je reprends fichier Post 4,
- Onglet trié
* Saisir 2 dans la cellule C2. oui!
* Saisir =SI(D2>9999;C1+1;C2+1) dans la cellule C3 et recopier vers le bas. oui!
* Saisir =SI(A3="";C2+9999;C2) en D2 et recopier dans D3 et D4. oui!
* Saisir =SI(ET(A2="";A6="");C5+9999;C5) en D5 et recopier vers le bas. oui!

* Avant de trier, il faut remplacer les formules par la valeur des résultats ? :
je ne comprends pas comment remplacer les formules...

*Sélectionner les colonnes C et D, faire COPIER, faire COLLAGE SPECIAL VALEURS UNIQUEMENT.
j'ai Sélectionner les colonnes C et D, faire COPIER, faire COLLAGE SPECIAL VALEURS Ok Entrée pour coller??

* Trier l'ensemble du fichier par rapport à la colonne D. Masquer les colonnes C et D.
Sélectionne D - Commande Trier et filtrer - Filtrer ??
le filtre me donne que des nombres ?

je mets le fichiers qui en résulte :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijAwRBtwL.xls

Cela ne fonctionne pas, je n'ai pas obtenue:
- le nombre
- le mot
- la ligne regroupée
- la ligne vide
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
15 mars 2009 à 18:36
Oh, là, là !

"Je reprends fichier Post 4,
- Onglet trié
* Saisir 2 ...
"
Certainement pas ! On ne peut pas commencer à travailler sur une feuille qui serait déjà triée ! Et triée avec quoi ? D'autant que la cinquième instruction du post 4 c'est justement
* Avant de trier, il faut remplacer les formules par la valeur des résultats

Je t'ai invitée à recommencer la manipulation, mais à partir d'une copie de TON FICHIER EXEMPLE, qui n'a qu'une seule feuille, et pas à partir du fichier de démonstration que j'ai élaboré pour que tu comprennes ! Les fichiers que tu m'as montrés aux posts 11 et 13, il faut les détruire !

Et comme il m'est impossible de venir m'asseoir à côté de toi pour te montrer comment on fait un collage spécial ou un tri (je n'ai jamais parlé de filtrer), je te recommande fortement de te rapprocher d'un ami ou parent qui s'y connait un peu mieux que toi en bureautique et qui te guidera dans l'exécution de mes consignes.

Pourtant je croyais avoir été très clair en écrivant "Avant de trier, il faut remplacer les formules par la valeur des résultats : Sélectionner les colonnes C et D, faire COPIER, faire COLLAGE SPECIAL VALEURS UNIQUEMENT", la deuxième partie de la phrase décrivant comment faire la première partie (ou la première partie annonçant à quoi servait la deuxième partie). Si tu avais appliqué rigoureusement cette instruction, tu aurais collé les valeurs au même endroit où tu avais copié les formules, remplaçant ainsi ces dernières par leurs résultats.
0
Bonjour,
Merci, Raymond PENTIER pour le mal que vous êtes donné à m'aider,mais je ne comprends plus rien.
Voilà, la solution eriiic m'a fait une macro géniale.
http://www.cijoint.fr/cjlink.php?file=cj200903/cij5NVxcvY.xls
Je suis satisfaite.
Pouvez-mettre discussion résolue ?
Merci eriiic.
0
Raymond PENTIER Messages postés 58699 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 17 octobre 2024 17 217
16 mars 2009 à 02:37
Et qui est cette Francine qui s'exprime à la place de Lucie ? Décidément, c'est à y perdre la tête ...
Et grand merci à ériiic qui, manifestement, nous a tous soulagés d'un gros souci !
0
Bonjour, Raymond PENTIER
Francine, c'est ma frangine.
Encore Bravo, à ériiic.
Pouvez-vous nous expliquer cette macro.
Sub MiseEnForme()
Dim derlig As Long, i As Long, j As Long
derlig = [A65536].End(xlUp).Row
For i = 1 To derlig
If IsNumeric(Cells(i, 1).Value) And Not (IsEmpty(Cells(i, 1))) Then
If Cells(i, 1).Offset(3, 0) <> "" Then
Cells(i, 1).Offset(2, 0).Value = Cells(i, 1).Offset(2, 0).Value & " " & Cells(i, 1).Offset(3, 0)
' supprimer la cellule en trop colonne A
Cells(i, 1).Offset(3, 0).Delete Shift:=xlUp
'ou bien supprimer toute la ligne
'Rows(i + 3).EntireRow.Delete
End If
i = i + 3
End If
Next i
End Sub
Cela sera bénéfique pour Raymond PENTIER et nous-même. :-)
0