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:

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Pas vraiment compris ta demande. Je t'avais demandé comment tu avais rempli la ligne 6 et tu m'as répondu que tu l'avais fait manuellement pour 3 lignes (6,7 et 8). Mauvaise idée, tu travailles en "manuelle" ensuite tu passes par une macro pour mettre en forme.

Ouvre l'éditeur vba, ensuite tu le redimensionnes (fenêtre de vbe) de telle façon à voir la feuille Ref, mets le curseur dans le code et utilises la touche F8, à chaque fois que tu appuies sur F8 le code exécute une ligne (déroulement du code). tu te rendras compte comment fonctionne le code. toutes les lignes s'effaceront sauf la 6. Les lignes du dessous seront mises en forme par rapport à cette ligne.
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

re,
merci beaucoup pour ta réponse....j'ai rempli 6, 7 et 8 juste pour montrer ma demande c'est tout
ce que je voulais dire avec ma demande c'est que les valeurs qui se trouvent sur la ligne 14 et 15 disparaissent alors que moi je souhaite les garder avec une différence de deux lignes entre la dernière ligne du tableau et O14..
voici mon fichier mis à jours avec ton code et je te laisse cliquer pour voir ce qui disparaissent dans la feuille Ref
 

Pièces jointes

  • Ven (1).xlsm
    39.8 KB · Affichages: 25
  • Ven (1).xlsm
    39.8 KB · Affichages: 31

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Il me semble que tu n'as pas utilisé la touche F8. C'est fameuses lignes 14 et 15 sont effacées par code. Dans ton code, tu prenais le numéro de la dernière ligne de la colonne O (15) et tu effaçais tout. Du coup tu ne les retrouves plus.

tu me dis que tu as rempli les lignes 6,7 et 8 juste pour montrer ce que tu voulais obtenir. C'est pour cette raison que je te repose la question, est-ce que les valeurs (données) en colonnes A,D,G et I changeront ou sont toujours les mêmes.

Présentement, le code n'efface pas la ligne6 (sauf en colonne O et R). Ce sont ces valeurs qui sont reportées sur les lignes du bas. Teste avec ce code, en fait, j'ai modifié juste le numéro de colonne
VB:
Sub Transfert2()
    Application.ScreenUpdating = False
    Set Ref = Sheets("Ref")
    Set Qte = Sheets("Qte")
    With Ref
        n = .Cells(65536, 18).End(xlUp).Row  'dernière ligne non vide en colonne R
        .Range("R6:R" & n).ClearContents    'effacer contenu colonne R
        .Range("O6:O" & n).ClearContents    'effacer contenu colonne O
        If n > 6 Then .Range("A7:R" & n).Clear  'vider plage A7 à Rn

    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
    End With
    Application.CutCopyMode = False
End Sub
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

les colonnes A,D,G,I et P ca me va qu'ils restent les mêmes je veux pas les changer
maintenanant le code que tu viens de m'ecrire n'éfface plus O14 et O15 comme je souhaite. mais il y'a toujours une petite erreur présente : c'est que si je rajoute des nouvelles lignes en vert comme données sur l'onglet Qte ils rajouteront des nouvelles lignes sur l'onglet Ref qui cacheront les lignes 14 et 15....c'est pourquoi il faut une petite modification pour garder l'écart cad un décalage de deux ligne vides entre O14 et la derniere ligne du tableau
par exemple dans l'exemple ci-joint en cliquant sur le bouton pour l'exportation 4 lignes se rajouteront et il cachent les valeur de O14 et O15 alors que normalement les valeurs de O14 doivent être apres sur O18.....et O15 sur O19
 

Pièces jointes

  • Ven (1).xlsm
    45.9 KB · Affichages: 20
  • Ven (1).xlsm
    45.9 KB · Affichages: 23
Dernière modification par un modérateur:

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Sur ta feuille il y a 3 formules, en H14=SOMME(H6:H11), en L15=H15/O15 et en O14=SOMME(O6:O11)

Dis-moi exactement ce que tu veux garder, sur ton fichier mets en gras et encadre les cellules que tu veux avoir après ton tableau.

@+
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

sur le fichier 1 le résultat qui me fait le code quand je rajoute des données sur l'onglet Qte
sur le fichier 2 le résultat que je souhaite avoir

la valeur de H15 c'est une valeur que j’écris manuellement
 

Pièces jointes

  • 1.xlsm
    45.9 KB · Affichages: 11
  • 1.xlsm
    45.9 KB · Affichages: 19
  • 2.xlsm
    46.1 KB · Affichages: 18
  • 2.xlsm
    46.1 KB · Affichages: 20
Dernière modification par un modérateur:

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Écoute, là tu me réponds un peu n'importe comment. je t'ai posé des questions auxquelles tu ne m'as pas répondu.

en colonne L tu as une formule en L15=H15/O15 - en O15 c'est bon on obtient le résultat par formule dans la macro

et pour h15 pourquoi tu insères en manuelle, tu ne peux pas avoir cette valeur par formule ou macro.

Pas compris ta démarche.

bon essaie ça, je mets tout code
VB:
Sub Transfert2()
    Application.ScreenUpdating = False
    Set Ref = Sheets("Ref")
    Set Qte = Sheets("Qte")
    With Ref
        n = .Cells(65536, 15).End(xlUp).Row  'dernière ligne non vide en colonne R
        .Range("R6:R" & n).ClearContents    'effacer contenu colonne R
        .Range("O6:O" & n).ClearContents    'effacer contenu colonne O
        If n > 6 Then .Range("A7:R" & n).Clear  'vider plage A7 à Rn

    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
        
        'formule
        n = .Range("R" & Rows.Count).End(xlUp).Row
        .Range("O" & n + 3).FormulaLocal = "=Somme(O6:O" & n & ")"
        .Range("H" & n + 3).FormulaLocal = "=Somme(H6:H" & n & ")"
        
    End With
    Application.CutCopyMode = False
End Sub
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

H15 je l'insère manuellement parce que je l'obtient dans un logiciel de Gestion après des calcules que je fais ensuite je l'ecris pour avoir un coefficient sur L15...
donc je ne peux pas l'avoir par formule je veux juste qu'elle se décale
 

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Je t'assure que si tu n'étais pas nouveau, j'aurai laissé tombé car tu explique très très mal tes attentes
donc je ne peux pas l'avoir par formule je veux juste qu'elle se décale
elle se décale par rapport à quoi (quel référentiel)
et la formule en colonne L, tu en fais quoi?
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

je m'excuse,
je m'explique : la dernière ligne du tableau est la ligne 11 ensuite il y'a la ligne 14 et la ligne 15 ou on a des formules et des valeures
si deux lignes se rajoutent au tableau donc la dernière ligne serait 13 puis l'objectif c'est que les lignes 14 et 15 seraient déplacées avec les formules et les mêmes valeurs constantes sur les lignes 16 et 17 comme dans l'exemple ci-joint
 

Pièces jointes

  • 1.xlsm
    41.6 KB · Affichages: 23
  • 1.xlsm
    41.6 KB · Affichages: 18

cathodique

XLDnaute Barbatruc
Re : Modification code exportation données

Rebelote, tu réponds à côté. LAISSE TOMBER LE DECALAGE DES LIGNES. AS-TU TESTE LE CODE DU POST#23? DANS CE CODE LE DECALAGE EST FAIT.

sur la feuille Ref, je vois en bas du tableau 5 valeurs en rouge (voir image), dont 3 sont des formules et 2 que tu saisies manuellement.

Est-ce que tu veux garder la même présentation (la même chose)?
 

donmunnir

XLDnaute Junior
Re : Modification code exportation données

le code sur post 23 est super
le décalage est fait pour la ligne 14 qui contient les sommes et c'est bien

mais la deuxième ligne 15 a disparu alors que moi je veux garder la même valeur de H15 et la même formule de L15 et la valeur de O15 soit égale O14 et les mêmes presentations comme l'exemple ci-joint exactement
 

Pièces jointes

  • 2.xlsm
    44.7 KB · Affichages: 18
  • 2.xlsm
    44.7 KB · Affichages: 13

donmunnir

XLDnaute Junior
Re : Modification code exportation données

oui si L15=989789 et après décalage, la ligne 15 se décale vers la ligne 17 par exemple L17=989789
mais après si je change manuellement L=17 par 123 par exemple, cette cellule prends la nouvelle valeur que j'ai changé avec la main
a chaque fois je clique sur le bouton de l'exportation la valeur reste la même jusqu'a a ce que je la change moi même manuellement
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
3
Affichages
413

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 608
dernier inscrit
rawane