Valeurs précédentes remplacées par les nouvelles
Bonjour,
J'ai fait un système de formulaire sans utiliser "USERFORM".
Voici les feuilles misent en places (toutes dans le même classeur):
- Formulaire
- Transport
- Infos patients-clients
- Calendrier
J'ai réussi à faire que les données du formulaire s'enregistrent dans les 3 feuilles (Transports, Info patients-clients, Calendrier) et à chaque nouvelles infos du formulaire, une nouvelle ligne se créée et ajoute les données.
J'ai juste un problème, avec la feuille "Calendrier". Dès que mon code VAB se met en marche, une nouvelle ligne s'installe avec les nouvelles données du formulaire.
Malheureusement, la ligne précédentes avec les anciennes données sont remplacées avec les nouvelles infos du formulaire.
Voici mon fichier:
Pouvez-vous me dire quelles erreurs j'ai pu faire ?
Et quelle est la méthode pour aussi exporter la feuille "Calendrier" en format ".ICS" ?
C'est ou l'intégrer dans un calendrier en ligne, afin de synchroniser les divers rdv sur divers appareils.
Merci par avance pour vos lumières.
Ci-dessous le code VAB:
Sub Sauvegarde()
' transports Macro
Sheets("Formulaire").Range("A43:T43").Select
Selection.Copy
Sheets("Transports").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.ListObject.ListRows.Add (1)
' infos_clients Macro
Sheets("Formulaire").Select
Range("K43:S43").Select
Selection.Copy
Sheets("Infos patients-clients").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.ListObject.ListRows.Add (1)
' calendrier Macro
Sheets("Transports").Select
Range("A3,B3,E3,G3:J3,K3:M3,O3:P3,S3").Select
Range("S3").Activate
Selection.Copy
Sheets("Calendrier").Select
Range("Tableau3[DATE " & Chr(10) & "TRANSPORT]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Tableau3[DATE " & Chr(10) & "TRANSPORT]").Select
Application.CutCopyMode = False
Selection.ListObject.ListRows.Add (1)
' suppression Macro
Sheets("Formulaire").Select
Range("A3:E3").Select
Selection.ClearContents
Range("A6:E6").Select
Selection.ClearContents
Range("A9:E9").Select
Selection.ClearContents
Range("A13:B14").Select
Selection.ClearContents
Range("D13:E14").Select
Selection.ClearContents
Range("A17:B17").Select
Selection.ClearContents
Range("D17:E17").Select
Selection.ClearContents
Range("A20:E20").Select
Selection.ClearContents
Range("A23:E23").Select
Selection.ClearContents
Range("A26:E30").Select
Selection.ClearContents
Range("A3").Select
ActiveWorkbook.Save
End Sub
Bonjour,
pour garder le fonctionnement présent sur les modules au dessus, vous devriez modifier ceci :
' calendrier Macro
Sheets("Transports").Select
Range("A3,B3,E3,G3:J3,K3:M3,O3:P3,S3").Select
Range("S3").Activate
Selection.Copy
Sheets("Calendrier").Select
Range("Tableau3[DATE " & Chr(10) & "TRANSPORT]").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Tableau3[DATE " & Chr(10) & "TRANSPORT]").Select
Application.CutCopyMode = False
Selection.ListObject.ListRows.Add (1)
par :
' calendrier Macro
Sheets("Transports").Select
Range("A3,B3,E3,G3:J3,K3:M3,O3:P3,S3").Select
Range("S3").Activate
Selection.Copy
Sheets("Calendrier").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Tableau3[DATE " & Chr(10) & "TRANSPORT]").Select
Application.CutCopyMode = False
Selection.ListObject.ListRows.Add (1)
Ensuite sachez qu'il n'est pas utile voir inutile de sélectionner une cellule pour travailler dessus et qu'il est possible de faire référence à plusieurs cellules on contiguës dans un "Range", donc vous pouvez remplacer ceci :
' suppression Macro
Sheets("Formulaire").Select
Range("A3:E3").Select
Selection.ClearContents
Range("A6:E6").Select
Selection.ClearContents
Range("A9:E9").Select
Selection.ClearContents
Range("A13:B14").Select
Selection.ClearContents
Range("D13:E14").Select
Selection.ClearContents
Range("A17:B17").Select
Selection.ClearContents
Range("D17:E17").Select
Selection.ClearContents
Range("A20:E20").Select
Selection.ClearContents
Range("A23:E23").Select
Selection.ClearContents
Range("A26:E30").Select
Selection.ClearContents
Range("A3").Select
ActiveWorkbook.Save
par :
' suppression Macro
Sheets("Formulaire").Select
Range("A3:E3,A6:E6,A9:E9,A13:B14,D13:E14,A17:B17,D17:E17,A20:E20,A23:E23,A26:E30").ClearContents
Range("A3").Select
ActiveWorkbook.Save
ou encore mieux, sous Excel vous sélectionnez avec la touche [Ctrl] enfoncée, l'ensembles des cellules à effacer du formulaire en lui donnant à l'issue un nom, par exemple Saisie et le code se résume à :
' suppression Macro
Sheets("Formulaire").Select
Range("Saisie").ClearContents
Range("A3").Select
ActiveWorkbook.Save
@ bientôt
LouReeD
Bonjour,
Merci beaucoup pour votre retour.
Effectivement, j'ai remarqué qu'il y a trop d'étape dans ce que je fais.