Recheche prog. VBA complémentaire.

Asperule

XLDnaute Nouveau
Bonjour à tous!

Suite à une discussion créer précédement, je recheche à compléter une programmation VBA.

J'ai un fichier Excel composé de trois feuilles:
-"Client" (où est répertorié différents nom de clients)
-"Commande" (où est saisie la comande)
-"Archive" (où sont décliné les commandes de chaque client respectif)

Il ya une programation VBA me permettant de transferer les données saisie de la feuille "Commande" sur les Feuilles "Archive" endessous de chaque client respectif, et d'afficher l'heure et la date à laquelle le transfert à été effectué.
Celle-ci est affectée sur le bouton situé sur la feuille "Commande".


Problématique:

Je recherche un complément de programation VBA me permettant qu'à chaque fois que je transfert une ligne supplémentaire, l'alignement et la trame se transforme pour poursuivre la présentation de base.

La deuxième tache consiste à ce que une fois la page complété,
le transfert s'éffetcue en complétant la deuxième page mais en passant outre la présentation de celle-ci ou en incluant une nouvelle présentation pour introduire la page.

Est ce que cela est possible?

Je vous remercie d'avance...
Salutation,
Asperule.
 

Pièces jointes

  • Asperule-1.1.xls.zip
    18.5 KB · Affichages: 29
  • Asperule-1.1.xls.zip
    18.5 KB · Affichages: 31
  • Asperule-1.1.xls.zip
    18.5 KB · Affichages: 29

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

bonsoir,

je ne comprends pas trés bien.

fais nous parvenir un nouveau fichier et un exemple concret de ce que tu veux, d'aprés ce que j'ai compris tu demanderais à ce que la présentation de la feuille soit "adaptée" aux nouvelles lignes ?

Est ce bien ça ?

AMICALEMENT

CHANTAL
 

Asperule

XLDnaute Nouveau
Re : Recheche prog. VBA complémentaire.

Bonjour Betgrav, Bonjour à tous.

Oui, Il faudrait dans un premier temps, qu'à chaque fois que je transfert des données supplémentaires sur la feuille "Archive", qui se traduit par l'ajout de ligne à la suite, celle-ci s'adapte à la présentation de base.

Explication:
- La feuille "Archive" est composé d'une entête de présentation avec des colones sur lesquelles vont être transferé des donnés. Cette feuille est composée de ligne blanches.

But rechecher:
- À chaque fois qu'une ligne se rajoute sur la feuille "Archive", les cellules sur lesquelles sont transferer, changent de Bordure te de trame.
- En locurence, il faudrait qu'une ligne sur deux soit orange et l'autre blanche.

Finalité rechercher:
- Au fur et à mesure que le transfert s'effectue il faudrait que la présentation de cellules suivent.

J'éspère avoir été un peu plus clair dans mon explication.

Merci pour votre attention et pour votre aide.
Salutation,
Asperule.
 

Pièces jointes

  • Asperule-1.2.zip
    17 KB · Affichages: 27
  • Asperule-1.2.zip
    17 KB · Affichages: 22
  • Asperule-1.2.zip
    17 KB · Affichages: 28
Dernière édition:

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

BONJOUR,

c'est un peu plus clair, mais le pb est que je n'arrive pas à ouvrir ton document, apparamment il n'est pas en .xls comme le 1er exemple que tu as envoyé

concernant la "colorisation" d'une ligne sur 2 j'ai fait un essai qui peux te servir

la macro contrôle la derniére ligne où il y a une info en colonne A et colorie en jaune 1 ligne sur 2

amicalement

chantal
 

Pièces jointes

  • couleur.xls
    21.5 KB · Affichages: 74
  • couleur.xls
    21.5 KB · Affichages: 74
  • couleur.xls
    21.5 KB · Affichages: 69

Pierrot93

XLDnaute Barbatruc
Re : Recheche prog. VBA complémentaire.

Bonjour Chantal, Asperule

Si je peux me permettre, j ai modifié ta maco en enlevant le select, qui a priori est inutile et ralenti le code

Code:
Sub a()
x = Range("a65500").End(xlUp).Row
For cpt = 1 To x Step 2
With Rows(cpt).Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Next
End Sub

Bon Week end à tous
@+
 

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

bonjour Pierrot

je te remercie pour ces infos qui me sont toujours profitables pour les suivantes,
je ne suis pas trés balaise dans ce genre d'exercice, je récupére des bouts de code à droite et à gauche que j'adapte, et il est vrai que de temps en temps il y a des imperfections.
mais les remarques, positives sont toujours les bien venues

amicalement

chantal
 

Asperule

XLDnaute Nouveau
Re : Recheche prog. VBA complémentaire.

Bonjour Pierrot93!

Merci à tous pour ces précieuses information...

Mais je ne sais pas trops où l'insérer dans ma programation pour qu'elle fonctonne...

C'est à dire:
-J'ai une programation qui me permet de transfèrer des donnés dans des cellules que je voudrais transfomés en couleur jaune mais juste une ligne sur deux (pour la présentation).

Ce que j'ai fais:
-J'ai affecté le code VBA que vous m'avez procuré, à un bouton pour réalisé le programme.

Problématique:
Lorsque j'applique la programation, la totalité de la ligne ou se trouve la cellule se change en couleur...
Alors qu'il faudrait juste que la cellule ou se trouve des donnés change...

Je suis un peu perdu... j'ai essayer plusieur solution... mais sans résultat.

Merci d'avance.
Salutation,
Asperule.
 

Pièces jointes

  • Asperule-1.3.xls.zip
    17.7 KB · Affichages: 19
Dernière édition:

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

bonjour,

j'ai créé une nouvelle procédure qui s'exécute aprés la premiére.

amicalement

chantal
 

Pièces jointes

  • Asperule-1.2.zip
    20.7 KB · Affichages: 34
  • Asperule-1.2.zip
    20.7 KB · Affichages: 32
  • Asperule-1.2.zip
    20.7 KB · Affichages: 32

Pierrot93

XLDnaute Barbatruc
Re : Recheche prog. VBA complémentaire.

Re bonjour Chantal, Asperule

J'ai regardé a nouveau ton dernier code Chantal, pourquoi après avoir déterminé x ne pas la copier puis appliquer les formats à la ligne suivante, a mon avis cela gagnerait du temps si on sur que c'est toujours le même format à appliquer. Enfin c est une idée qui me vient ...

Code:
Rows(x).Copy
Rows(x + 1).PasteSpecial Paste:=xlPasteFormats

Bon après midi
@+
 

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

eh bien......parceque j'y ai pas pensé.

à vrai dire j'étais partie avec mon compteur pour les couleurs 1 ligne sur 2, et comme j'y étais .......j'ai continué.

effectivement quand j'ai fait le code je me doutais qu'il y avait nettement mieux car je recréais ce qui existait avant en ajoutant 1 ligne.

avec vba j'en apprends toujours, comme je l'ai dit je ne suis pas experte.....juste un peu passionnée

amicalement

chantal
 

Asperule

XLDnaute Nouveau
Re : Recheche prog. VBA complémentaire.

Merci à vous tous pour votre aide....

Mais je n'ai pas trouvé où je devais exactement placé ta Formule, Pierrot...

Est ce que je pourrai l'avoir dans son ensemble?
(je suis débutant en VBA...)

Deplus la programation differt sur Mac Os et en bidouillant un peu... j'ai réussit...
En effet lorsque j'ouvre le fichier le logiciel marque "ouverture de la Metafile" (je ne sais pas ce que c'est) et lorsque j'éxecute la tache, elle marque:
"Erreur d'éxecution '32809'. Erreur définie par l'application ou par l'objet"

à la place d'utilisé deux module qui s'emboite l'un d'ans l'autre, j'ai tous rassemblé sur une feuille pour exéctué la tache...
Et ça marche (encore pas tout à fais... mais je la mettrai en fichier joint lorsque j'aurrai fini...)

Il est vrai que cela prend un certain temps au niveau de l'éxecution de la tache...

Encore merci!
 
Dernière édition:

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

bonsoir à vous 2

j'ai essayé le code à pierrot, mais malheureusement en la mettant à la suite du code (1 ligne sur 2) ça ne va pas, il y a un pb de format, j'ai beau chercher je n'y arrive pas ?
Individuellement elle fonctionne mais dés que je la mets avec l'autre elle ne fait plus les bordure .....bizarre
et ce qu'elle s'exécute avant ou aprés le code 1 ligne sur 2
pierrot si t'y arrives (et je ne doute pas de ta réussite) peux tu me faire voire voire)

chantal
 

Pièces jointes

  • Asperule-1.2.zip
    20.1 KB · Affichages: 23
  • Asperule-1.2.zip
    20.1 KB · Affichages: 27
  • Asperule-1.2.zip
    20.1 KB · Affichages: 22

Pierrot93

XLDnaute Barbatruc
Re : Recheche prog. VBA complémentaire.

Bonsoir Chantal, Asperul, le forum

Le code ci dessous adapté à votre problématique, enfin j'espère.

A utiliser lors de l'alimentation de la base archive, par contre à priori pourquoi une boucle sur toutes les lignes puisque, si j ai bien compris c'est pour faire des alimentations au coup par coup ?

Donc je prends le format de la ligne précedente et j'applique une fois sur 2 la couleur, en fait si le numéro de la nouvelle ligne créée est paire.

Petite remarque au passage Asperule, si je peux me permettre, si tu veux par la suite faire des stats, des rapports, ou des graphiques, il vaudrait mieux batir ta base archive sur un modèle de base de donnée, a savoir dans la colonne A tu mets le nom de ton client et tu enlèves les colonnes vides, cela ne fait plus que 5 colonnes à gérer, c'est plus facile à travailler.

N'hésites pas si tu rencontres un problème.

Bon courage et bonne soirée.
@+


Code:
Sub AlimentationArchive()
Dim x as Integer
With Sheets("Archive")
    x = .Range("b65500").End(xlUp).Row
    .Rows(x).Copy
    .Rows(x + 1).PasteSpecial Paste:=xlPasteFormats
        If ((x + 1) Mod 2) = 0 Then 'pour lignes numéros pairs mettre 1 pour lignes impairs
            With .Range("b" & x + 1 & "," & "d" & x + 1 & ":" & "f" & x + 1).Interior
                .ColorIndex = 2
                .Pattern = xlLightUp
                .PatternColorIndex = 40
            End With
        End If
End With

End Sub
 
Dernière édition:

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

bonsoir pierrot,

effectivement ça va plus vite, mais même pb qu'avec l'autre,


A la fin de la procédure d' asperule , j'appelle la procédure que tu viens de créer et la copie de derniére ligne et le collage en ligne x+1 ne remet pas le format avec les bordures: pourquoi je ne sais pas.

as tu cela aussi chez toi ?

AMICALEMENT

CHANTAL
 

bertgrav

XLDnaute Occasionnel
Re : Recheche prog. VBA complémentaire.

Rebonsoir

ok j'ai trouvé ce qui n'allait pas.....ouf.

en fait dans le code, on vient copier la derniére ligne et on la colle au même format: c'est à dire que si c'est la ligne avec les couleurs, on collera le format avec les couleurs
donc lors des différentes successions de lignes, on aura toujours des lignes avec couleur...
j'ai ajouté une condition pour enlever la couleur en fonction de la ligne paire ou impaire.

autre chose, je venais appeler le code à la fin de la procédure, ce qui fait que la derniére ligne (x) est celle qui a été incrémentée par la procédure précédente, ce qui fait que le contrôle de copie doit être fait sur la ligne x-1 pour la copier en ligne x.....maintenant ça va mieux, au moins on copie une ligne avec des bordures

donc voici ce que j'ai fait:

AMICALEMENT

CHANTAL

Sub AlimentationArchive()
Dim x As Integer
With Sheets("Archive")
x = .Range("b65500").End(xlUp).Row
.Rows(x - 1).Copy
.Rows(x).PasteSpecial Paste:=xlPasteFormats

If ((x) Mod 2) = 0 Then 'pour lignes numéros pairs mettre 1 pour lignes impairs
With .Range("b" & x & "," & "d" & x & ":" & "f" & x).Interior
.ColorIndex = 2
.Pattern = xlLightUp
.PatternColorIndex = 40
End With
Else
With .Range("b" & x & "," & "d" & x & ":" & "f" & x).Interior
.ColorIndex = xlNone

End With

End If

End With

End Sub
 

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet