Modification code exportation données (Résolue)

donmunnir

XLDnaute Junior
Bonjour à Tous,
je suis débutant en VBA, et sur le fichier ci-joint que j'ai trouvé sur un autre site j'ai un code avec le quel j'exporte des données de l'ongle Qte vers l'onglet Ref.
mais j'ai deux petits souci :

1-c'est que les ligne 9, 10 et 11 de l'onglet Ref ou j'ai des nouvelles données ne prennent pas la même mise en forme des autres lignes comme 6, 7 et 8.....donc je veux modifier le code pour que quand je fais l'exportation les lignes qui s'ajoutent prenne la même mise en forme avec les formules et les données qui se répètent

2-un autre souci c'est que quand je fais l'exportation les cellules O14 et O15 disparaissent
 

Pièces jointes

  • Ven.xlsm
    38 KB · Affichages: 49
Dernière modification par un modérateur:

Lone-wolf

XLDnaute Barbatruc
Re : Modification code exportation données

bonjour donmunnir et bienvevue sur XLD :)

regarde si ça joue comme ceci:


Code:
Sub Transfert()
Application.ScreenUpdating = False
Set F1 = Sheets("Ref")
Set F2 = Sheets("Qte")
N = F1.Cells(65536, 15).End(xlUp).Row
F1.Range("R6:R65536").ClearContents
F1.Range("O6:O65536").ClearContents
N = 6
With F2
 For I = 12 To .Cells(65536, 17).End(xlUp).Row
  If .Cells(I, 17).Value <> "" And .Cells(I, 17).Value > 0 And Cells(I, 17).Interior.ColorIndex <> 6 Then
  'Si tu veux par rapport aux cellules contenant les sommes change la ligne du dessus par celle du dessous en vert sans l'apostrophe
 'If .Cells(i, 17).Value <> "" And .Cells(i, 17).Value > 0 And Cells(i, 17).Interior.Color = RGB(102, 255, 153) Then
 
    F1.Cells(N, 15) = .Cells(I, 17)
    .Cells(I, 17).Copy F1.Cells(N, 15)
    F1.Cells(N, 18) = .Cells(I, 2)
    .Cells(I, 2).Copy F1.Cells(N, 18)
    F1.Cells(N, 12) = .Cells(I, 1)
    .Cells(I, 1).Copy F1.Cells(N, 12)
    N = N + 1
  End If
 Next I
End With
Application.CutCopyMode = False
End Sub


A+ :cool:
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

Bonjour,
non ca marche pas, ca garde pas la même mise en forme de toute la ligne mais ca colore juste les cellules copiées en vert et pour le 2ème point les cellules O14 et O15 disparaissent toujours
 

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Tu cherches un peu partout, preuve de ton impatience. Que ça soit sur ce forum ou d'autres, les personnes qui aident gracieusement le font de leur propre initiative. On s'entraide, est-ce que tu as compris cette "philosophie"?

Si ta demande n'a pas été satisfaite, c'est soit que tu as très mal énoncé ton problème et par conséquent ceux et celles qui ont consulté ta discussion n'ont rien compris, soit ils ne sont pas en mesure de te répondre.

[XL-2007] Modification Code Exportation Données

modifie Paste:=xlPasteValues par Paste:=xlPasteAll
 
Dernière édition:

donmunnir

XLDnaute Junior
Re : Modification code exportation données

Bonsoir Cathodique,
j'ai compris, je m'excuse...
merci pour ta réponse mais cela ne fait que copier les formats de l'onglet Qte vers l'onglet Ref
mais ce que je veux c'est que le format des lignes 9,10 et 11 de l'onglet Ref et toutes les lignes qui se rajouteront par la suite soit la même que la ligne 7 que j'ai déja sur l'onglet Ref
Merci d'avance
 

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Je n'ai pas compris comment tu remplis les colonnes A, D, G et I

essai ce code
VB:
Sub Transfert()
    Application.ScreenUpdating = False
    Set F1 = Sheets("Ref")
    Set F2 = Sheets("Qte")
    n = F1.Cells(65536, 15).End(xlUp).Row
    F1.Range("R6:R65536").ClearContents
    F1.Range("O6:O65536").ClearContents
    n = 6
    With F2
        For i = 12 To .Cells(65536, 17).End(xlUp).Row
            If .Cells(i, 17).Value <> "" And .Cells(i, 17).Value > 0 And Cells(i, 17).Interior.ColorIndex <> 6 Then
                'Si tu veux par rapport aux cellules contenant les sommes change la ligne du dessus par celle du dessous en vert sans l'apostrophe
                'If .Cells(i, 17).Value <> "" And .Cells(i, 17).Value > 0 And Cells(i, 17).Interior.Color = RGB(102, 255, 153) Then

                F1.Cells(n, 15) = .Cells(i, 17)
                .Cells(i, 17).Copy
                F1.Cells(n, 15).PasteSpecial Paste:=xlPasteValues
                F1.Cells(n, 18) = .Cells(i, 2)
                .Cells(i, 2).Copy
                F1.Cells(n, 18).PasteSpecial Paste:=xlPasteValues
                F1.Cells(n, 12) = .Cells(i, 1)
                .Cells(i, 1).Copy
                F1.Cells(n, 12).PasteSpecial Paste:=xlPasteValues
                n = n + 1
            End If
        Next i
    End With
'mise en forme feuille Ref
    With F1
        n = F1.Range("R" & Rows.Count).End(xlUp).Row
        .Rows("6:6").Copy
        For i = 7 To n
            .Rows(i).PasteSpecial Paste:=xlPasteFormats
        Next i
    End With
    Application.CutCopyMode = False
End Sub
Pour les valeurs en O14 et O15, si tu les écrases avec ton export, c'est normal qu'elles disparaissent.
 
Dernière édition:

donmunnir

XLDnaute Junior
Re : Modification code exportation données

re, cathodique...on est a 80% de ce que je veux....

1-pour D,G, I et P je veux qu'il prennent les mêmes valeurs sur toutes les lignes
2-pour A je veux que les valeurs soient d'une manière croissante

comme vous pouvez constater sur la photo ci-jointe
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    32.4 KB · Affichages: 25
  • Sans titre.jpg
    Sans titre.jpg
    32.4 KB · Affichages: 27

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Voilà, tout ce fait par rapport à la ligne 6 de la feuille Ref. De quelle manière as-tu renseigné les colonnes A, D, G, I et P, et mis en forme cette ligne 6?
VB:
Sub Transfert2()
    Application.ScreenUpdating = False
    Set Ref = Sheets("Ref")
    Set Qte = Sheets("Qte")
    With Ref
        n = .Cells(65536, 15).End(xlUp).Row

        .Range("R6:R" & n).ClearContents
        .Range("O6:O" & n).ClearContents
        If n > 6 Then .Range("A7:R" & n).Clear

    End With
    n = 6
    With Qte
        For i = 12 To .Cells(65536, 17).End(xlUp).Row
            If .Cells(i, 17).Value <> "" And .Cells(i, 17).Value > 0 And .Cells(i, 17).Interior.ColorIndex = 35 Then    '<> 6 Then '6=jaune; 35=vert
                Ref.Cells(n, 15).Value = .Cells(i, 17).Value
                Ref.Cells(n, 18).Value = .Cells(i, 2).Value
                Ref.Cells(n, 12).Value = .Cells(i, 1).Value
                n = n + 1
            End If
        Next i
    End With
    With Ref
        n = .Range("R" & Rows.Count).End(xlUp).Row
        .Rows("6:6").Copy
        For i = 7 To n
            .Rows(i).PasteSpecial Paste:=xlPasteFormats
            .Range("A" & i) = .Range("A" & i - 1) + 10
            .Range("D" & i) = .Range("D" & i - 1)
            .Range("G" & i) = .Range("G" & i - 1)
            .Range("I" & i) = .Range("I" & i - 1)
            .Range("P" & i) = .Range("P" & i - 1)
        Next i
        .Range("A1").Activate
    End With
    Application.CutCopyMode = False
End Sub
Il y avait une petite erreur qui était inaperçue. Mets ce code dans un module standard et supprime celui que tu as mis dans le module de code de la feuille Qté.
 
Dernière édition:

donmunnir

XLDnaute Junior
Re : Modification code exportation données

Bonjour cathodique,
les valeurs que j'ai dans les colonnes A, D, G, I et P je les ai remplis au début a main
il y'a un problème dans le code, il m'envoi une erreur sur la ligne .Range("A1").Activate
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    32.7 KB · Affichages: 28
  • Sans titre.jpg
    Sans titre.jpg
    32.7 KB · Affichages: 25

donmunnir

XLDnaute Junior
Re : Modification code exportation données

maintenant ca marche parfaitement,
mais j'ai un petit souci c'est l'actualisation par exemple si c'est fois j'ai des données qui se copient sur 8 lignes j'aurai 8 lignes avec mise en forme et tout mais si par la suite je supprime des données dans l'onglet source (Qte) les lignes restent avec la même mise en forme et vide
donc je veux supprimer les lignes qui n'ont pas pris de valeur sur la colonne O...

Merci d'avance
 

Discussions similaires

Réponses
3
Affichages
399

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN