Bonjour à tous et toutes !!

J'ai une petite question pour un gros problème.

J'ai quelques petites notions en vba, mais pas sufisament pour m'en sortir.

Pour faire simple je vais vous montrer la maccro que j'ai créer (bidouiller) et en suite (si vous y comprenez quelques chose, j'ai des modifications à y apporter.

Voici le bébé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
Sub Validation_pavois()
' validerclient Macro
' Macro enregistrée le 22/09/2003 par delta voiles
    Sheets("formulaire").Select 'on va selec le feuillé "formulaire"
    Range("A2:BB2").Select 'on selec la plage de donné de la ligne A du tableau
    Selection.Copy 'fait copier le nouveau client recopié ligne 2
    Sheets("Clients").Select 'on va sur la feuille clients et on la selectione
    For i = 6 To 3000
    If Cells(i, 1) = "" Then
    Cells(i, 1).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 'là on y fait un collage spécial en recopiant la ligne de données completes en gardant la même police
    Sheets("Clients").Select 'on revient afficher la feuille client
    Cells(5, 1).Show
    i = 3000
    End If
    Next i
    Range("A6").Select 'on selectione la cellule A6
    Application.CutCopyMode = False 'on vide le presse papier de sa mémoire
    Selection.Sort Key1:=Range("K5"), Order1:=xlDescending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal 'apparement depuis la case A6 on choisi la fonciton trier dans ordre alphabétique
    Columns("K:K").Select
    Range("K3").Activate
    Selection.NumberFormat = "[$-40C]d-mmm-yy;@"
    Sheets("formulaire").Select
    Range("prout").Value = ""
    Range("D4").Select
    Sheets("Clients").Select 'on revient afficher la feuille client
    Range("A5").Select 'on séléctione enfin la case A5
 
End Sub
Bon je vous l'avou, il y a beaucoup de copier coller sur des exemples de macro que j'ai put voir par ci par là...
Il y a sans doute donc des lignes de commandes qui ne servent à rien et d'autre que l'on peux voir autrement.

Le principe de cette macro, est de créer une sorte de base de donné pour un fichier client.
D'une feuille de saisie des coordonées et divers info d'un client, je "clic" sur un bouton de "validation" une fois am saisie terminé, et l'ensemble des données vont alors se mettre sur une autre feuille du fichier, sur une seule ligne, à la suite des autres, puis il y a un "tri" par ordre alphabétique .... Avant ça, les données ont été alignés sur une seule ligne dans ma feuille de saisi pour n'avoir à copier qu'un seul RANGE, celui de la ligne de donnée....

Bon vous arrivez à suivre, encore là ?
Merci donc.

Mes questions sont donc :
- il y a t'il plus simple ?
- Si je veux mettre des conditions dans ma macro, comment faire ?

C'est à dire que, je créer dans le même fichier 3 feuilles identiques de données, mais une pour les PROSPECTS CLIENT, une autre pour les CLIENT ATELIER, et une dernière pour les DEVIS CLIENT.
Et que ma macro, suivant le renseignement du TYPE de client, elle va remplir soit la feuille PROSPECT, soit la feuille ATELIER, soit la feuille DEVIS. (voir 2 ... ou les 3!)

- Poussons le visse plus loin, si je veux faire un fichier avec cette fois si 3 feuilles différentes pour PROSPECT ATELIER et DEVIS, toujours avec le principes de remplissage de lignes de données, comment faire si les lignes ne sont pas les mêmes sur chaques feuilles ? (là ça devient tordue en effet...)

Merci millle fois à vous tous pour votre patience et votre coup de main.
N'hésitez pas à simplement me renvoyer vers des listes de commandes VBA simple, avec explication en français, je devrais me débrouiller ....

A bientôt.
Juju.