Remplissage automatique

Bonjour à tous,

Voilà cela ne fait pas longtemps que j'utilise Excel 2003 et j'ai déjà un petit souci ^^. Voilà j'ai créer un tableau avec une liste de personnes dont des intérim avec des numéros de boites aux lettres qui leur sont affectés.

Ce que je voudrai tout d'abord c'est que quand j'entre une personne, si c'est un intérim qu'elle soit d'une couleur différente (voir mon tableau) : je pense que pour cela il est obligatoire de créer un autre tableau avec la liste des intérim, mais après ??

Deuxiement je voudrai que quand je rentre une nouvelle personne celle-ci est une boite aux lettres qui lui soit affectée automatiquement parmis celle qui sont libres. Sachant que les numéros vont de 1 à 73 pour les CDD/CDI et de 77 à 92 pour les intérims. Et inversement quand une personne est enlevé sa boite aux lettres redeviens dispo.

Je ne sais pas si cela est possible (je pense que si) mais toute aide est bon à prendre

Merci d'avance

a+ Val

Bonjour,

un essai en code VBA sur les feuilles 2 et 3

Tu rentres un nom, tu choisis sur la liste déroulante si c'est un intérim ou non

Si oui ca le colore en rouge, sinon ca le laisse en noir, et dans les deux cas cela lui assigne la 1ère boîte libre dans sa catégorie.

Quand il part, tu effaces son nom, et ça efface le reste de sa ligne et ça libère la boîte.

Par contre utilise bien le fichier comme ça, n'efface pas des trucs par toi même dans les tableaux à part le nom sinon ca risque de buggué :p

De même que si tu changes ton fichier ou le nom des onglets il faut modifier le code VBA avec les nouveaux noms.

Pour voir le code VBA et le modifier, click droit sur le nom de l'onglet "Affectation" et choisir "voir le code" et la dedans remplacer les noms d'onglets.

Enfin si tu as un problème, envois ton vrai fichier et je ferais l'adaptation en t'expliquant.

Cordialement,

Un grand merci à toi. Sa va grave m'aider

Petit retour.

Cela ne marche pas quand je met le nom d'un personne et que je met si elle est en intérim ou pas rien ne se passe.

Je pense que je n'est pas bien compris comment l'utilisé ou peut être que c'est un porblème autre.

N'empêche que ce qui à déjà fait m'aide beaucoup.

Merci d'avance

Ps : le document que j'ai mis en lien est le document original

Pourtant cela marche chez moi, quand tu lances le fichier, tu active bien les macros et tu as cliqué sur "Activer les modifications" ?

Sinon les macros ne marchent pas.

De plus je comprends pas tout dans ta liste car tu écris :

"Sachant que les numéros vont de 1 à 73 pour les CDD/CDI et de 77 à 92 pour les intérims. "

Dans ta liste je suppose que ceux en bleu sont les intérims et pourtant je vois en bleu :

10 BENMOUSSA Otman 73 => alors que 73 devrait être pour un cdd/cdi donc en noir

12 BOUHADDA Wissen 74

13 BOUJANDIR Shadia 75 eux trois ils ont des numéros de boites qui ne devraient pas exister...

14 BOUNAMAZA Zaid 76

Et comment doit-on gérer ceux avec écrit "Goncelin" ? Car pour l'instant tu ne peux pas les rentrer dans mon fichier...

Apportes moi quelques explications sur ces points, et je remplirais mes tableaux avec tes noms et je te renverrais le fichier pour que tu réessais.

Autant pour moi... La liste des boîte aux lettres pour les intérimaires commence bien à partir de 73.

Pour ceux à goncelin il n'a rien à faire car ils n'ont pas de boite aux lettres (je les ai rajouter car on me la demandé)

Encore merci de m'aider

ps : effectivement cela ne marchait pas à cause des macro --'

Ok, voilà le fichier corrigé, avec les noms déjà remplis que tu avais fournis, si ca a pas bougé depuis hier tu peux commencer à l'utiliser normalment.

Pour ceux de Goncelin, si tu veux les saisir quand même, pour pas que ca assigne une boite automatiquement, écris "Goncelin" dans la colonne de la bôite de la feuille affectation sur leur ligne AVANT de choisir si ils sont interim ou non.

Cordialement,

Merci beaucoup c'est super sympa

Bonjour,

Tout d'abord je tiens à dire que le fichier que tu m'as réalisé me sert beaucoup. Je reviens ici car dans le cadre de ma formation j'ai une mission à réalisé qui s'appelle création et modélisation d'un document excel.

Je voudrais donc exposé mon document. Le seul souci c'est que je suis encore un peu novice concernant les codes VBA. En parcourant le forum j'ai put comprendre comment celà marche mais je ne serais pas expliquer toutes les lignes de codes que contient mon document :

"Private Sub Worksheet_Change(ByVal Target As Range)

Dim ligne As Integer, i As Integer

If Not Intersect(Target, Range("C2:C88")) Is Nothing And Target.Count = 1 Then

ligne = Target.Row

If Target.Value = "Oui" Then

Range("A" & ligne & ":D" & ligne & "").Font.ColorIndex = 3

For i = 3 To 18

If Worksheets("Liste_Boite").Range("E" & i) = "" Then

If i = 18 And Worksheets("Liste_Boite").Range("E" & i) = "X" Then

MsgBox "Désolé, toutes les boîtes aux lettres 'Intérims' sont déjà affectées"

Else

Worksheets("Affectation").Range("D" & ligne) = Worksheets("Liste_Boite").Range("D" & i)

Worksheets("Liste_Boite").Range("E" & i) = "X"

Exit For

End If

End If

Next i

ElseIf Target.Value = "Non" Then

Range("A" & ligne & ":D" & ligne & "").Font.ColorIndex = 0

For i = 3 To 75

If Worksheets("Liste_Boite").Range("B" & i) = "" Then

If i = 75 And Worksheets("Liste_Boite").Range("B" & i) = "X" Then

MsgBox "Désolé, toutes les boîtes aux lettres 'Employés' sont déjà affectées"

Else

Worksheets("Affectation").Range("D" & ligne) = Worksheets("Liste_Boite").Range("A" & i)

Worksheets("Liste_Boite").Range("B" & i) = "X"

Exit For

End If

End If

Next i

ElseIf Target.Value = "" Then

If Worksheets("Affectation").Range("D" & ligne).Value < 76 Then

Worksheets("Liste_Boite").Range("B" & Worksheets("Affectation").Range("D" & ligne).Value + 2) = ""

Worksheets("Affectation").Range("D" & ligne).Value = ""

ElseIf Worksheets("Affectation").Range("D" & ligne) <> "" And Worksheets("Affectation").Range("D" & ligne).Value > 76 Then

Worksheets("Liste_Boite").Range("E" & Worksheets("Affectation").Range("D" & ligne).Value - 74) = ""

Worksheets("Affectation").Range("D" & ligne).Value = ""

End If

End If

End If

If Not Intersect(Target, Range("B2:B88")) Is Nothing And Target.Count = 1 Then

If Target.Value = "" Then

ligne = Target.Row

Range("A" & ligne & ":D" & ligne & "").Font.ColorIndex = 0

Range("C" & ligne).Value = ""

End If

End If

End Sub"

Est il possible d'avoir une explication sur le gros de ces codes afin que je puisse réaliser un exposé sur la crétion de mon document.

Merci d'avance pour l'aide.

Bonjour,

Tant mieux si le fichier te rend service.

Concernant les commentaires du code, étant au travail, je n'ai pas spécialement le temps cet après-midi, mais je peux te faire ça ce soir ou demain matin si c'est préssé, cela ira-t-il niveau délai pour préparer ton exposé ?

Cordialement,

Cela ne presse pas (une semaine environ) ... Encore merci pour cette aide précieuse ^^

Bonjour,

Désolé un peu plus occupé que prévu, voilà le code commenté.

Cordialement,

Encore merci. C'est parfait.

Rechercher des sujets similaires à "remplissage automatique"