Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Détaillé une liste de prix

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

David590

XLDnaute Occasionnel
Bonsoir à tous,

J'ai une liste d'articles avec leurs prix et leurs quantités et j'aurais besoin de séparer le prix... je ne sais pas trop comment expliqué ça 🙂

J'ai donc fais un fichier exemple ou tous est expliqué, mais je ne suis pas certain que ce soit possible, je vous laisse voir

Merci d'avance
 

Pièces jointes

Re : Détaillé une liste de prix

Bonsoir David,

Voici un code qui semble devrait faire l'affaire. Il faut sélectionner la 1re cellule en haut à gauche de la liste d'article et la 1re cellule de destination.

VB:
Sub SeparePrix()
'p1 = 1re cellule de la liste d'articles (aucune ligne vide !)
'p2 = 1re cellule de destination
Dim p1 As Range, p2 As Range, dPrix

Set p1 = Application.InputBox("Sélectionner la plage contenant la liste des articles : ", , , , , , , 8)
Set p2 = Application.InputBox("Sélectionner la cellule de destination : ", , , , , , , 8)

Application.ScreenUpdating = False

If p1.Count > 1 Or p2.Count > 1 Then
    MsgBox "Mauvaise(s) plage(s) sélectionnée(s). Recommencer"
    Exit Sub
End If

Do Until IsEmpty(p1)
    dPrix = p1.Offset(0, 2) / p1.Value
    p1.Resize(1, 2).Copy p2
    For i = 0 To p1 - 1
        p2.Offset(i, 2) = dPrix
        p2.Offset(i, 2).NumberFormat = "0.00 €"  
    Next i
    Set p2 = p2.Offset(p1, 0)

Set p1 = p1.Offset(1, 0)
Loop

Application.ScreenUpdating = True

End Sub

A+
 
Re : Détaillé une liste de prix

Bonjour Grand Chaman,

Merci pour ce code

C'est bien ce qu'il me faut, pas contre je n'ai pas besoin de la inputbox pour taper la première cellule est celle de destination,
j'aimerai plutôt que tout reste au même endroit, dans la même colonne, et la quand je colle au même endroit ca ne fonctionne pas

J'ai essayé de modifier le code mais ça aussi est au dessus de mes compétences 🙂
 
Re : Détaillé une liste de prix

Bonjour David,

Voici le code modifié. Il faut choisir la 1re cellule de la liste d'article et le tout est recollé au même endroit.

VB:
Sub SeparePrix2()
'p1 = 1re cellule de la liste d'articles (aucune ligne vide !)
Dim p1 As Range, p2 As Range, dPrix As Variant, i As Integer, l As Integer
Dim Tablo As Variant, Tablo2 As Variant

Set p1 = Application.InputBox("Sélectionner la 1re cellule de la plage contenant la liste des articles : ", , , , , , , 8)
Set p2 = p1

Application.ScreenUpdating = False

If p1.Count > 1 Then
    MsgBox "Mauvaise plage sélectionnée. Recommencer"
    Exit Sub
End If

ReDim Tablo(1 To 3, 1 To 1)
l = 2
Do Until IsEmpty(p1)
    ReDim Preserve Tablo(1 To 3, 1 To UBound(Tablo, 2) + p1)
    dPrix = p1.Offset(0, 2) / p1.Value
    
    Tablo(1, l) = p1.Offset(0, 0)
    Tablo(2, l) = p1.Offset(0, 1)
    For i = l To UBound(Tablo, 2): Tablo(3, i) = dPrix: Next i
    l = UBound(Tablo, 2) + 1
Set p1 = p1.Offset(1, 0)
Loop

ReDim Tablo2(1 To 3, 1 To UBound(Tablo, 2) - 1)
For i = 1 To UBound(Tablo2, 2)
    Tablo2(1, i) = Tablo(1, i + 1)
    Tablo2(2, i) = Tablo(2, i + 1)
    Tablo2(3, i) = Tablo(3, i + 1)
Next i

p2.Resize(UBound(Tablo2, 2), 3) = Application.Transpose(Tablo2)
Application.ScreenUpdating = True

End Sub

A+
 
Re : Détaillé une liste de prix

Bonjour à tous,

Je reviens sur ce post ou j'avais obtenu un code pour détailler les prix d'une liste, mais maintenant j'aurais besoin de faire exactement la même chose mais en sens inverse, c'est à dire de regrouper comme avant l’exécution du code

J'ai fais un petit fichier exemple

Merci d'avance

David
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
402
Réponses
8
Affichages
315
Réponses
5
Affichages
407
Réponses
15
Affichages
465
Réponses
4
Affichages
231
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…