Programmation VBA sur Excel
Résolu/Fermé
moi JB
Messages postés
157
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
7 mars 2023
-
24 nov. 2008 à 18:52
moi JB Messages postés 157 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 7 mars 2023 - 25 nov. 2008 à 19:53
moi JB Messages postés 157 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 7 mars 2023 - 25 nov. 2008 à 19:53
A voir également:
- Programmation VBA sur Excel
- Liste déroulante excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Si et excel - Guide
- Trier sur excel - Guide
- Word et excel gratuit - Guide
4 réponses
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
24 nov. 2008 à 23:57
24 nov. 2008 à 23:57
Salut
Je t'ai rajouté des truc comme le remplacement du nom de la nouvelle feuille créée, par le nom et le prénom de la personne que tu veux référencer et le déplacement de la nouvelle feuille en dernier.
Tu peux les effacer si ta t'intéresse pas sa n'affectera pas le code.
A mettre dans un bouton ou dans Worksheet_SelectionChange
voila
Sub essai()
' si la derniere cellule est rempli par exemple TEL
' en cellule A3 alors
If Sheets("feuil1").Range("A3").Value <> "" Then
Sheets.Add ' crée une nouvelle feuille
'nom de la nouvelle feuille est le prénom et le nom
'cellule A1 et A2 de feuil1
ActiveSheet.Name = Sheets("feuil1").Range("A1").Value & " " & Sheets("feuil1").Range("A2").Value
'déplace la nouvelle feuille en dernière position
ActiveSheet.Move After:=Sheets(Worksheets.Count)
'copie les valeurs des cellules A1 A2 et A3 nom prénom Tel
'vers la nouvelle feuille en cellule A1 A2 et A3
ActiveSheet.Range("A1").Value = Sheets("feuil1").Range("A1").Value
ActiveSheet.Range("A2").Value = Sheets("feuil1").Range("A2").Value
ActiveSheet.Range("A3").Value = Sheets("feuil1").Range("A3").Value
End If
End Sub
Je t'ai rajouté des truc comme le remplacement du nom de la nouvelle feuille créée, par le nom et le prénom de la personne que tu veux référencer et le déplacement de la nouvelle feuille en dernier.
Tu peux les effacer si ta t'intéresse pas sa n'affectera pas le code.
A mettre dans un bouton ou dans Worksheet_SelectionChange
voila
Sub essai()
' si la derniere cellule est rempli par exemple TEL
' en cellule A3 alors
If Sheets("feuil1").Range("A3").Value <> "" Then
Sheets.Add ' crée une nouvelle feuille
'nom de la nouvelle feuille est le prénom et le nom
'cellule A1 et A2 de feuil1
ActiveSheet.Name = Sheets("feuil1").Range("A1").Value & " " & Sheets("feuil1").Range("A2").Value
'déplace la nouvelle feuille en dernière position
ActiveSheet.Move After:=Sheets(Worksheets.Count)
'copie les valeurs des cellules A1 A2 et A3 nom prénom Tel
'vers la nouvelle feuille en cellule A1 A2 et A3
ActiveSheet.Range("A1").Value = Sheets("feuil1").Range("A1").Value
ActiveSheet.Range("A2").Value = Sheets("feuil1").Range("A2").Value
ActiveSheet.Range("A3").Value = Sheets("feuil1").Range("A3").Value
End If
End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
25 nov. 2008 à 09:03
25 nov. 2008 à 09:03
Boujour,
Pour rendre la fonction de herod1983 automatique (sans bouton) tu peu ajouter le code ci-dessous dans le module de la feuil1 (si c'est la 1ère)
C'est à adapter, dans l'exemple il faut modifier la cellule de la colonne A en dernier si tu veux que les 3 cellules soient copiées.
A+
Pour rendre la fonction de herod1983 automatique (sans bouton) tu peu ajouter le code ci-dessous dans le module de la feuil1 (si c'est la 1ère)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static AncAdress As String, AncCell As Variant If AncAdress <> "" And Target.Count = 1 Then 'pour 1ère initialisation. If AncCell <> Range(AncAdress) And Range(AncAdress).Column = 1 Then 'La cellule que l'ont vient de quitter était en colonne A 'et a été modifiée. 'Mettre l'action à exécuter. Call essai() End If End If AncAdress = Target.Address AncCell = Target.Value2 End Sub
C'est à adapter, dans l'exemple il faut modifier la cellule de la colonne A en dernier si tu veux que les 3 cellules soient copiées.
A+
herod1983
Messages postés
193
Date d'inscription
jeudi 2 octobre 2008
Statut
Membre
Dernière intervention
3 août 2012
5
25 nov. 2008 à 19:48
25 nov. 2008 à 19:48
Pas mal du tout j'aime bien, j'ai juste eu un coup déboguage,
quand la nouvelle feuille a été créée, je reviens à la première et j'éfface les valeurs des cellules.
Normalement sa n'aurait pas du le faire vu que tu as rentré cette condition If AncAdress <> "", j'ai juste rajouté
on error resume next, la condition d'erreur saute cela appelle la macro et s'arrete sur la condition
If Sheets("feuil1").Range("A3").Value <> ""
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static AncAdress As String, AncCell As Variant
If AncAdress <> "" And Target.Count = 1 Then 'pour 1ère initialisation.
On Error Resume Next
If AncCell <> Range(AncAdress) And Range(AncAdress).Column = 1 Then
'La cellule que l'ont vient de quitter était en colonne A
'et a été modifiée.
'Mettre l'action à exécuter.
Call essai()
End If
End If
AncAdress = Target.Address
AncCell = Target.Value2
End Sub
quand la nouvelle feuille a été créée, je reviens à la première et j'éfface les valeurs des cellules.
Normalement sa n'aurait pas du le faire vu que tu as rentré cette condition If AncAdress <> "", j'ai juste rajouté
on error resume next, la condition d'erreur saute cela appelle la macro et s'arrete sur la condition
If Sheets("feuil1").Range("A3").Value <> ""
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static AncAdress As String, AncCell As Variant
If AncAdress <> "" And Target.Count = 1 Then 'pour 1ère initialisation.
On Error Resume Next
If AncCell <> Range(AncAdress) And Range(AncAdress).Column = 1 Then
'La cellule que l'ont vient de quitter était en colonne A
'et a été modifiée.
'Mettre l'action à exécuter.
Call essai()
End If
End If
AncAdress = Target.Address
AncCell = Target.Value2
End Sub
moi JB
Messages postés
157
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
7 mars 2023
35
25 nov. 2008 à 19:53
25 nov. 2008 à 19:53
Salut,
J'ai essayé les codes que vous m'avez evnoyé, ca marche à merveille. Ils sont très claire, très lisible.
Merci beaucoup.
J'ai essayé les codes que vous m'avez evnoyé, ca marche à merveille. Ils sont très claire, très lisible.
Merci beaucoup.