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

Doublons,Reduction de caracteres et report

  • Initiateur de la discussion Initiateur de la discussion Gexk5
  • Date de début Date de début

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 !

Gexk5

XLDnaute Occasionnel
Bonjour le forum, avec une formule, j'ai effectué une reduction a 6 caracteres d'une colonne de données, puis tiré la formule, cela fonctionne , puis meme operation avec l'enregistreur de macro, problème, cele ne fonctionne pas quand j'execute la macro a l'aide du bouton tri, Pourquoi????
Avant cela , je voudrais 1 seule ligne quand j'ai 2 fois la meme reference mais cumuler les quantités sur la ligne restante, quelqu'un a t il une idée??????
Je joint un fichier pour exemple avec plus d'explications.

Merci d'avance a tous ceux qui m'aiderons

Normalement, jamais decu sur ce forum
 

Pièces jointes

Re : Doublons,Reduction de caracteres et report

bonsoir kjin, la formule doit renvoyer les 6 premiers caracteres de la colonne A dans la colonne D.

Merci de t'interesser a mon probleme

@+
 
Re : Doublons,Reduction de caracteres et report

Re, en matricel ou autrement , ca me gene pas, le principal est que ca fonctionne. Le principale est que tout se fasse par macro, pour ne pas voir les formules effacées, avec les macros, cela me permet de les activer a l'ouverture du fichier, donc tout se recalcul a l'ouverture du fichier.

@+
 
Re : Doublons,Reduction de caracteres et report

Bonsoir,
Extraction des 6 premiers caractères, addition des doublons puis suppression et transfert des valeurs spécifiées dans la feuille cible Z1 ou Z2
Code:
Sub Extraire6()
Dim DL1 As Long, DL2 As Long, i As Long
Dim Plage1 As Range, Cel As Range, Trouve As Range, Ws As String
With Sheets("Export")
DL1 = .Range("A65000").End(xlUp).Row
    For i = 2 To DL1
        .Cells(i, 4) = Mid(.Cells(i, 1), 1, 6)
    Next
.Range("A1:D" & DL1).Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess
For i = DL1 To 2 Step -1
    If .Cells(i, 4) = .Cells(i - 1, 4) Then
        .Cells(i - 1, 2) = .Cells(i - 1, 2) + .Cells(i, 2)
        .Rows(i).Delete
    End If
Next
Set Plage1 = .Range("D2:D" & .Range("A65000").End(xlUp).Row)
End With
With Sheets("Base Vulc")
    For Each Cel In Plage1
    Set Trouve = .Range("B3:B" & .Range("A65000").End(xlUp).Row).Find(Cel)
        If Not Trouve Is Nothing Then
            If Trouve.Offset(0, -1) = "Z1" Then Ws = "Zone 1_S01" Else: Ws = "Zone 2_S01"
            With Sheets(Ws)
            DL2 = .Range("A65000").End(xlUp).Row + 1
                .Cells(DL2, 1) = Cel.Value
                .Cells(DL2, 2) = Trouve.Offset(0, 6)
                .Cells(DL2, 4) = Trouve.Offset(0, 7)
                .Cells(DL2, 5) = Trouve.Offset(0, 5)
                .Cells(DL2, 6) = Trouve.Offset(0, 3)
                .Cells(DL2, 7) = Trouve.Offset(0, 8)
            End With
        End If
    Next
End With

End Sub
A+
kjin
 

Pièces jointes

Re : Doublons,Reduction de caracteres et report

Salut, le forum, kjin
Merci pour ta reponse, je teste mais ca ma l'air du tonnere, je vais au boulot et je te tient au courant ce soir.

Encore merci

@+
 
Re : Doublons,Reduction de caracteres et report

Bonjour le forum, kjin
Le fichier modifié fonctionne bien, par contre je me suis trompé pour le remplissage en auto, ce sont les valeur (cdp et rebut gammé) de la feuille Export qu'il faut transferer en auto sur mes feuilles Zone1_S01 et Zone2_S01,
quelqu'un a t'il une idée ?????

merci de vos reponses
je reposte le fichier
 

Pièces jointes

Re : Doublons,Reduction de caracteres et report

Bonsoir,
Il suffit de modifier la partie du code qui transfère les valeurs
Code:
Sub Extraire6()
Dim DL1 As Long, DL2 As Long, i As Long
Dim Plage1 As Range, Cel As Range, Trouve As Range, Ws As String
With Sheets("Export")
DL1 = .Range("A65000").End(xlUp).Row
    For i = 2 To DL1
        .Cells(i, 4) = Mid(.Cells(i, 1), 1, 6)
    Next
.Range("A1:D" & DL1).Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess
For i = DL1 To 2 Step -1
    If .Cells(i, 4) = .Cells(i - 1, 4) Then
        .Cells(i - 1, 2) = .Cells(i - 1, 2) + .Cells(i, 2)
        .Rows(i).Delete
    End If
Next
Set Plage1 = .Range("D2:D" & .Range("A65000").End(xlUp).Row)
End With
With Sheets("Base Vulc")
    For Each Cel In Plage1
    Set Trouve = .Range("B3:B" & .Range("A65000").End(xlUp).Row).Find(Cel)
        If Not Trouve Is Nothing Then
            If Trouve.Offset(0, -1) = "Z1" Then Ws = "Zone 1_S01" Else: Ws = "Zone 2_S01"
            With Sheets(Ws)
            DL2 = .Range("A65000").End(xlUp).Row + 1
                .Cells(DL2, 1) = Cel.Value
                .Cells(DL2, 2) = Trouve.Offset(0, 6)
                .Cells(DL2, 4) = Cel.Offset(0, 1)         'Ici
                .Cells(DL2, 5) = Trouve.Offset(0, 5)
                .Cells(DL2, 6) = Trouve.Offset(0, 3)
                .Cells(DL2, 7) = Cel.Offset(0, 2)         'Ici
            End With
        End If
    Next
End With

End Sub
A+
kjin
 
Re : Doublons,Reduction de caracteres et report

Salut kjin, non super boulot de ta part, je voulais simplement dire que j'allais pouvoir finaliser mon fichier, car ce tri et report n'est que le debut, ensuite j'ai tout un tas de fonction dans differentes feuilles, et des bilans a graphiquer.
Par contre c'est bizarre, dans le fichier exemple, tout fonctionne parfaitement, mais quand je recopie la macro dans mon fichier original avec les memes données, cela ne fonctionne pas, donc je reconstruit mon fichier a partir de l'exemple.

Peut etre aurai-je encore besoin d'aide

@+

encore merci de ton aide
 
- 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

S
Réponses
8
Affichages
2 K
S
P
Réponses
0
Affichages
977
P
R
  • Question Question
Réponses
1
Affichages
1 K
Rousseau Benoit
R
C
Réponses
2
Affichages
906
Crisky
C
I
Réponses
10
Affichages
1 K
insosama
I
B
Réponses
2
Affichages
1 K
bonjourdoc
B
K
Réponses
0
Affichages
3 K
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…