XL 2010 AUTOMATISATION ENTRE DEUX TABLEAU .

rémy74

XLDnaute Nouveau
Bonjour à tous ,
après parcourus le forum dans tous les sens , je n'ai pas trouvé ou compris la solution à mon petit problème .
Voilà le truc : dans mon premier onglet se trouve un tableau ou sont listés les dossiers en cour de réalisation , sur ce tableau , il y une colonne ou j'indique le numéro de la semaine ou la mise en oeuvre de mon chantier se fera . j'aurais voulus, qu'une fois que je rentre le numéro de semaine en dur dans ce premier onglet, le deuxième onglet (qui est un planning) se remplisse automatiquement ! le top , serai que la case correspondante à la ligne client et la verticale de la dite semaine se colore en vert automatiquement , afin d'avoir un visuel globale sur la charge de travail qui nous attend .
 

Pièces jointes

  • SUIVI IND metreur.xlsx
    29.1 KB · Affichages: 12

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour rémy74,

Un essai en fichier joint par la mise en forme conditionnelle

Cordialement

EDIT Bonjour frangy, désolé pour la collision pas rafraichi
 

Pièces jointes

  • SUIVI IND metreur.xlsx
    29.8 KB · Affichages: 7

Jocelyn

XLDnaute Barbatruc
re,

alors frangy est passé par une macro pour la voir il faut faire ALT+F11 par contre je ne sais ce qu'il faut changé pour agrandir les plages peut être

Modifier cette ligne du code

If Not Application.Intersect(Target, Range("I8:L19,N8:N19")) Is Nothing Then

par

If Not Application.Intersect(Target, Range("I8:L100,N8:N100")) Is Nothing Then

ensuite concernant mon fichier tu dis ne marche pas chez moi ok mais c'est quoi qui ne marche pas car le fichier sur mon ordi tourne bien

Cordialement
 

rémy74

XLDnaute Nouveau
re,

alors frangy est passé par une macro pour la voir il faut faire ALT+F11 par contre je ne sais ce qu'il faut changé pour agrandir les plages peut être

Modifier cette ligne du code

If Not Application.Intersect(Target, Range("I8:L19,N8:N19")) Is Nothing Then

par

If Not Application.Intersect(Target, Range("I8:L100,N8:N100")) Is Nothing Then

ensuite concernant mon fichier tu dis ne marche pas chez moi ok mais c'est quoi qui ne marche pas car le fichier sur mon ordi tourne bien

Cordialement
en réalité il marche mais : j'ai un décalage sur les lignes , ça tombe pas sur les meme lignes d'un onglets à l'autre ...

en tout cas un grand merci !
 

frangy

XLDnaute Occasionnel
Oups ! Effectivement, je n'avais pas déclaré la totalité de la plage ...
Pour la peine, voici le code commenté.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
    'Si plusieurs cellules ont été modifiées, on sort de la procédure
    If Target.Count > 1 Then Exit Sub
    'Si la cellule modifiée appartient aux plages de saisie I8:L71 et N8:N71
    If Not Application.Intersect(Target, Range("I8:L71,N8:N71")) Is Nothing Then
        'Si les 2 saisies ont été faites (client et semaine)
        If Target <> "" And Cells(Target.Row, 4) <> "" Then
            ' la feuille cible est "PLANNING"
            With Worksheets("PLANNING")
                'On cherche le client en colonne A
                Set C = .Columns(1).Find(Cells(Target.Row, 4), , xlValues, xlWhole)
                'Si le client est trouvé et que la saisie de la semaine est numérique
                If Not C Is Nothing And IsNumeric(Target.Value) Then
                    'On applique la couleur de remplissage correspondant à l'opération dans le planning
                    .Cells(C.Row, Target.Value + 1).Interior.Color = Cells(6, Target.Column).Interior.Color
                End If
            End With
        End If
    End If
End Sub
 

Pièces jointes

  • SUIVI IND metreur.xlsm
    37.2 KB · Affichages: 7

rémy74

XLDnaute Nouveau
Oups ! Effectivement, je n'avais pas déclaré la totalité de la plage ...
Pour la peine, voici le code commenté.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
    'Si plusieurs cellules ont été modifiées, on sort de la procédure
    If Target.Count > 1 Then Exit Sub
    'Si la cellule modifiée appartient aux plages de saisie I8:L71 et N8:N71
    If Not Application.Intersect(Target, Range("I8:L71,N8:N71")) Is Nothing Then
        'Si les 2 saisies ont été faites (client et semaine)
        If Target <> "" And Cells(Target.Row, 4) <> "" Then
            ' la feuille cible est "PLANNING"
            With Worksheets("PLANNING")
                'On cherche le client en colonne A
                Set C = .Columns(1).Find(Cells(Target.Row, 4), , xlValues, xlWhole)
                'Si le client est trouvé et que la saisie de la semaine est numérique
                If Not C Is Nothing And IsNumeric(Target.Value) Then
                    'On applique la couleur de remplissage correspondant à l'opération dans le planning
                    .Cells(C.Row, Target.Value + 1).Interior.Color = Cells(6, Target.Column).Interior.Color
                End If
            End With
        End If
    End If
End Sub


C'est super ! sauf que je ne sais pas ou trouver ta formule dans excel , mdr et donc je ne pourrais pas la modifier ! si jamais tu es chaud tu peut faire descendre la formule jusqu'au confins de la page !!!! car on traite dans les 2 a 3 mille clients par ans lol !

en tout cas merci beaucoup pour votre réactivité ! c'est génial !

PS: si tu t'appel frangy par ce que tu y habite , je suis vraiment pas loin en haute savoie ! je te paie une bière quand tu veux ! tu pourrais meme me donner des cours ...
 

frangy

XLDnaute Occasionnel
Pour que tu puisses apprécier la procédure plus longtemps, je pense qu’il est préférable de t’indiquer comment la modifier.

Pour accéder à l'éditeur VBA, utiliser le raccourci clavier ALT+F11
Si l’explorateur de projet n’est pas ouvert, utiliser le raccourci clavier CTRL+R
Puis double clic sur le module Feuil1(suivi dossier)

Voici la ligne de procédure à modifier
VB:
'Si la cellule modifiée appartient aux plages de saisie I8:L71 et N8:N71
    If Not Application.Intersect(Target, Range("I8:L71,N8:N71")) Is Nothing Then

Range("I8:L71,N8:N71") indique les 2 plages prises en compte (I8:L71 et N8:N71).
Pour toucher le fond, il suffit d’écrire Range("I8:L1048576 ,N8:N1048576 ")

Tu m’apprends que Frangy est une bourgade de Haute-Savoie ! Dommage que tu n’aies pas eu ton problème en fin Juin car j’étais en étape à Annecy (avant de suivre la route des cols à moto).

Cordialement.
 

rémy74

XLDnaute Nouveau
génial ! je préfère aussi apprendre à pécher plutôt que que tu me donne juste un poisson !!!
en tout cas , sans vous , j'aurais galéré !
donc le sujet est clos pour moi , la réponse apporter par la communauté est exactement celle que je voulais , en bref :
BRAVO !!!
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T