IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copie de "Feuille général" la valeur cellule Fx, si Ax en surbriance , insertion dans dans nFeuil cellule G16


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2012
    Messages : 1
    Par défaut Copie de "Feuille général" la valeur cellule Fx, si Ax en surbriance , insertion dans dans nFeuil cellule G16
    Bonjour à tous!

    Pour un projet, je conçois un tableau debord de suivi d'affaires, avec mise en place d'un Gant lié à chaque affaire.
    J'aurais besoin (mon niveau en VBA est quasi nul), de quelques conseils, procédures pour faire une manip', qui est la suivante:

    Lorsque que je sélectionne le nom de la cellule "An", puis je clique sur "generer gant", une nouvelle feuille s'ouvre.
    J'aimerais cependant faire remonter les dates correspondantes à la ligne "n", dans certaines cellules de la feuill qui viens de s'ouvrir.
    Je vous met le fichier avec quelques explications à dispositions... en espérant que vous allez comprendre. Dans ce fichier, j'ai juste cité une valeur à recopier, je me débrouillerai après une fois que j'aurais compris le raisonnement à avoir.

    Je vous remerciant grandement de votre aide, car je suis vraiment coincé là... et mon projet n'avance pas du coup.
    N'hésitez pas à me solliciter si je n'ai pas été assez clair...

    Samuel
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub GenererGant()
    Dim c As Range
    Dim NFeuil As String
     
    Application.ScreenUpdating = False
    Set c = ActiveCell
    If c.Column = 1 And c.Row > 3 Then
        NFeuil = c.Value
        If NFeuil <> "" Then
            If Not FeuilExist(NFeuil) Then
                Worksheets("Diagramme de Gantt").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
                With ActiveSheet
                    .Name = NFeuil
                    .Range("A1").Value = NFeuil
                    .Range("G16").Value = c.Offset(0, 5).Value
                End With
            End If
        End If
    End If
    Set c = Nothing
    End Sub
     
    Function FeuilExist(ByVal NomFeuil As String) As Boolean
    Dim Sh As Worksheet
     
    For Each Sh In ThisWorkbook.Sheets
        If UCase(Sh.Name) = UCase(nomFeuil) Then
            FeuilExist = True
            Exit For
        End If
    Next Sh
    End Function
    PS: Au lieu de sélectionner une cellule et puis tu clique sur le bouton, tu peux éventuellement utiliser l'évènement double clique sur Feuil1

    Exemple (pour créer un nouveau diagramme, double cliquez sur la cellule correspondante en colonne A de Feuil1)

    Code à mettre dans le module de la feuille Feuil1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim NFeuil As String
     
    Application.ScreenUpdating = False
    If Target.Column = 1 And Target.Row >= 4 Then
        NFeuil = Target(1, 1).Value
        If NFeuil <> "" Then
            Cancel = True
            If Not FeuilExist(NFeuil) Then
                Worksheets("Diagramme de Gantt").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
                With ActiveSheet
                    .Name = NFeuil
                    .Range("A1").Value = NFeuil
                    .Range("G16").Value = Target(1, 1).Offset(0, 5).Value
                End With
            Else
                MsgBox "Diagramme pour " & NFeuil & " existe déjà"
            End If
        End If
    End If
    End Sub
     
    Private Function FeuilExist(ByVal NomFeuil As String) As Boolean
    Dim Sh As Worksheet
     
    For Each Sh In ThisWorkbook.Sheets
        If UCase(Sh.Name) = UCase(NomFeuil) Then
            FeuilExist = True
            Exit For
        End If
    Next Sh
    End Function

Discussions similaires

  1. Copie de x feuilles en fonction de x valeurs de cellules
    Par jtk77 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/02/2013, 09h01
  2. [VBA] Copie d'une feuille (avec graphique)
    Par ed_dexia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo