Création d'une nouvelle feuille Excel soumise à condition
Thalia31
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Thalia31 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Thalia31 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je viens vous demander un peu d'aide ; débutante en VBA, je souhaite créer une macro pour simplifier la création de nouvelles feuilles Excel.
Ma base de données "A1-Liste" contient les noms de personnes que je veux joindre par téléphone.
Si j'arrive à avoir un entretien téléphonique avec cette personne (date de contact dans la colonne N), je veux créer automatiquement un nouvel onglet portant le nom de la personne (contenu dans la colonne A) --> le but est de résumer le contenu de ma conversation avec cette personne dans l'onglet ainsi créé.
En parcourant les forums, j'ai réussi à bidouiller le code ci-dessous. Le problème c'est qu'il ne se passe..........rien !
Pourriez-vous m'aider svp ?
Merci beaucoup !!
Sub Ajout_Feuil()
' Si la personne a été contactée (colonne N non vide)
Sheets("A1 - Liste").Range("N3").Select
If Range("N3").Value <> "" Then
' On choisit la colonne A pour nommer les nouvelles feuilles à créer
Dim oFeuille As Worksheet
Sheets("A1 - Liste").Range("A3").Select
Set plg = Range("A3", Range("A3").End(xlDown))
Application.ScreenUpdating = False
For Each cel In plg.Cells
If cel.Value <> "" Then
On Error Resume Next ' pour éviter erreur si elle n'existe pas
Set oFeuille = Sheets(cel.Value)
On Error GoTo 0 ' retour à la normale
If oFeuille Is Nothing Then
' Création d'une nouvelle feuille portant le nom de la personne contactée
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = cel.Value
End If
End If
Set oFeuille = Nothing
Next
End If
End Sub
Je viens vous demander un peu d'aide ; débutante en VBA, je souhaite créer une macro pour simplifier la création de nouvelles feuilles Excel.
Ma base de données "A1-Liste" contient les noms de personnes que je veux joindre par téléphone.
Si j'arrive à avoir un entretien téléphonique avec cette personne (date de contact dans la colonne N), je veux créer automatiquement un nouvel onglet portant le nom de la personne (contenu dans la colonne A) --> le but est de résumer le contenu de ma conversation avec cette personne dans l'onglet ainsi créé.
En parcourant les forums, j'ai réussi à bidouiller le code ci-dessous. Le problème c'est qu'il ne se passe..........rien !
Pourriez-vous m'aider svp ?
Merci beaucoup !!
Sub Ajout_Feuil()
' Si la personne a été contactée (colonne N non vide)
Sheets("A1 - Liste").Range("N3").Select
If Range("N3").Value <> "" Then
' On choisit la colonne A pour nommer les nouvelles feuilles à créer
Dim oFeuille As Worksheet
Sheets("A1 - Liste").Range("A3").Select
Set plg = Range("A3", Range("A3").End(xlDown))
Application.ScreenUpdating = False
For Each cel In plg.Cells
If cel.Value <> "" Then
On Error Resume Next ' pour éviter erreur si elle n'existe pas
Set oFeuille = Sheets(cel.Value)
On Error GoTo 0 ' retour à la normale
If oFeuille Is Nothing Then
' Création d'une nouvelle feuille portant le nom de la personne contactée
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = cel.Value
End If
End If
Set oFeuille = Nothing
Next
End If
End Sub
A voir également:
- Création d'une nouvelle feuille Excel soumise à condition
- Darkino nouvelle adresse - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
4 réponses
Bonjour,
Il ne se passe rien.
Doit-on comprendre que lorsqu'on lance la macro, rien ne se passe ou bien que la macro ne se lance pas ?
A+
Il ne se passe rien.
Doit-on comprendre que lorsqu'on lance la macro, rien ne se passe ou bien que la macro ne se lance pas ?
A+
Bonjour Pilas,
A priori la macro se lance bien, car si j'ai des messages d'erreurs qui s'affichent si je fais une erreur dans la syntaxe.
En fait, selon les "bidouillages" que je fais, soit la macro se lance mais rien ne se passe, soit la macro se lance et créé des onglets pour tous les noms contenus dans la colonne A... y compris ceux pour lesquels la colonne N est vide.
J'en conclue que le problème doit venir de ma syntaxe sur la condition "colonne N non vide"
A priori la macro se lance bien, car si j'ai des messages d'erreurs qui s'affichent si je fais une erreur dans la syntaxe.
En fait, selon les "bidouillages" que je fais, soit la macro se lance mais rien ne se passe, soit la macro se lance et créé des onglets pour tous les noms contenus dans la colonne A... y compris ceux pour lesquels la colonne N est vide.
J'en conclue que le problème doit venir de ma syntaxe sur la condition "colonne N non vide"
Oui il faut légérement modifier la macro car elle ne tient pas compte de la valeur de la colonne N pour chaque ligne mais une fois pour toute :
Voici une proposition de modification :
A tester
Cordialement,
Voici une proposition de modification :
Sub Ajout_Feuil() ' On choisit la colonne A pour nommer les nouvelles feuilles à créer Dim oFeuille As Worksheet Sheets("A1 - Liste").Select Set plg = Range("A3", Range("A3").End(xlDown)) Application.ScreenUpdating = False For Each cel In plg.Cells If cel.Value <> "" Then ' Si la personne a été contactée (colonne N non vide) If Range("N" & cel.Row).Value <> "" Then On Error Resume Next ' pour éviter erreur si elle n'existe pas Set oFeuille = Sheets(cel.Value) On Error GoTo 0 ' retour à la normale If oFeuille Is Nothing Then ' Création d'une nouvelle feuille portant le nom de la personne contactée Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = cel.Value Sheets("A1 - Liste").Select End If End If Set oFeuille = Nothing End If Next End Sub
A tester
Cordialement,