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 :

Problème macro en incorporant une autre macro [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut Problème macro en incorporant une autre macro
    Bonjour le forum
    Je voudrais incorporer la macro qui est en commentaires dans celle ci-dessous
    Lorsque je clique sur une cellule quelconque de la colonne B avec la souris jusqu'à trouver la bonne date qui s'affiche colonne A puis je tape un montant colonne B mais lorsque je fait enter ça m'affiche la date suivante colonne A et je doit faire Suppr pour la supprimer
    Je pige pas
    Merci à vous

    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
    33
    34
    35
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim Obj As Shape, Ligne As Long
     
      ' Change automatiquement le texte du bouton
     
      Ligne = Selection.Row
      If Range("B" & Ligne) = "" Or Ligne > Range("A" & Rows.Count).End(xlUp).Row Or Ligne < 5 Then
        Ligne = Range("A" & Rows.Count).End(xlUp).Row
      End If
     
        If UCase(Sh.Name) <> "MENU" And Target.Count = 1 And Target.Column = 2 And Target.Row > 5 Then
          Application.ScreenUpdating = False
    '      ActiveSheet.Unprotect
     
          For Each Obj In ActiveSheet.Shapes
            If InStr(1, Obj.TextFrame.Characters.Text, "Centrer Texte", vbTextCompare) > 0 Then Exit For
          Next Obj
     
          If Not Obj Is Nothing Then
          ' Calcul de la dernière ligne.Celle-ci sera automatiquement centrée sur les colonnes B & C en cliquant sur le Bouton Centrer Texte Sur Plusieurs Colonnes
     
            With Obj.TextFrame
              If Range("B" & Ligne).HorizontalAlignment = xlCenterAcrossSelection Then
                .Characters.Text = "Annuler Centrer Texte" & vbLf & "Sur Plusieurs Colonnes"
                .Characters(Start:=23, Length:=22).Font.ColorIndex = 5
              Else
                .Characters.Text = "Centrer Texte" & vbLf & "Sur Plusieurs Colonnes"
                .Characters(Start:=15, Length:=22).Font.ColorIndex = 5
     
              End If
            End With
          End If
    '      ActiveSheet.Protect
        End If
    End Sub
    Incorporer la macro ci-dessous qui est en commentaires dans celle ci-dessus


    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
    'Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    'Dim LaDate As Date, J As Long
    '  If Target.Address <> Selection.Address Then Exit Sub
    '    If Target.Column = 2 Then
    '        Application.ScreenUpdating = False
    '        For J = 6 To 36
    '            If Cells(J, "B") = "" Then Cells(J, "A").ClearContents
    '        Next J
    '        ' Reconstruit la date de fonction du nom de la feuille et du numéro de ligne sélectionnée
    '        LaDate = DateSerial(Split(Sh.Name, " ")(1), Month(DateValue(Sh.Name)), Target.Row - 5)
    '        If UCase(MonthName(Month(LaDate))) = UCase(Split(Sh.Name, " ")(0)) Then
    '            ' Si la colonne B et la colonne C est vide on efface la date
    '            Range("A" & Target.Row) = Application.Proper(Format(LaDate, "dddd dd mmmm yyyy"))
    '        End If
    '    End If
    'End Sub

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, comme les 2 macros s'exécutent suite à un test conditionnel, en intégrant les 2 test if à la suite l'un de l'autre ça devrait fonctionner.
    essaie comme ceci:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        Dim Obj As Shape, Ligne As Long
        Dim LaDate As Date, J As Long
     
        ' Première partie 
        Ligne = Selection.Row
        If Range("B" & Ligne) = "" Or Ligne > Range("A" & Rows.Count).End(xlUp).Row Or Ligne < 5 Then
            Ligne = Range("A" & Rows.Count).End(xlUp).Row
        End If
     
        If UCase(Sh.Name) <> "MENU" And Target.Count = 1 And Target.Column = 2 And Target.Row > 5 Then
            Application.ScreenUpdating = False
     
             For Each Obj In ActiveSheet.Shapes
                If InStr(1, Obj.TextFrame.Characters.Text, "Centrer Texte", vbTextCompare) > 0 Then Exit For
            Next Obj
     
            If Not Obj Is Nothing Then
                With Obj.TextFrame
                    If Range("B" & Ligne).HorizontalAlignment = xlCenterAcrossSelection Then
                        .Characters.Text = "Annuler Centrer Texte" & vbLf & "Sur Plusieurs Colonnes"
                        .Characters(Start:=23, Length:=22).Font.ColorIndex = 5
                    Else
                        .Characters.Text = "Centrer Texte" & vbLf & "Sur Plusieurs Colonnes"
                        .Characters(Start:=15, Length:=22).Font.ColorIndex = 5
                    End If
                End With
            End If
        End If
     
        ' Deuxième partie
        If Target.Column = 2 Then
            Application.ScreenUpdating = False
            For J = 6 To 36
                If Cells(J, "B") = "" Then Cells(J, "A").ClearContents
            Next J
     
            LaDate = DateSerial(Split(Sh.Name, " ")(1), Month(DateValue(Sh.Name)), Target.Row - 5)
            If UCase(MonthName(Month(LaDate))) = UCase(Split(Sh.Name, " ")(0)) Then
                ' Si les colonnes B et C sont vides, on efface la date
                Range("A" & Target.Row) = Application.Proper(Format(LaDate, "dddd dd mmmm yyyy"))
            End If
        End If
     
        Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre très actif
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 660
    Par défaut
    Bonjour Franc
    Non toujours pas

    Nom : image.JPG
Affichages : 63
Taille : 26,6 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro Qui Appelle Une Autre Macro
    Par aguirre49 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/06/2007, 14h58
  2. VBA : ouvrir une macro depuis une autre BDD
    Par crovette51101 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/05/2007, 08h09
  3. [VBA Excel] Conserver une donnée d'une macro à une autre
    Par Mourne dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/03/2007, 10h45
  4. Réponses: 5
    Dernier message: 04/01/2007, 16h46
  5. [VBA-E]PB lancer une macro d'une autre classeur
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/07/2006, 18h12

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