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 :

Regrouper deux macros


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut Regrouper deux macros
    Bonjour à tous,

    Suite à ma derniére questions, (Merci pour vos réponses si rapides) j'ai un tout petit peu progresse en language VBA .
    Mon problémes est le suivant :
    J'ai actuellement 2 macros qui fonctionnent trés bien l'une puis l'autre - "Conclusion" et "Conclusion 2". Les données copier par "Conlusion 2" se collant juste aprés dans celle copier par "Conclusion".

    Code de "Conclusion"
    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
     
    Sub Conclusion()
    Dim i As Integer
     Dim j As Integer
     Dim k As Integer
     k = 2
     i = 1
     While Sheets("EVRC - Semi-quantitatif").Cells(22, i) <> Empty
     i = i + 1
     Wend
     For j = 2 To i
     If Sheets("EVRC - Semi-quantitatif").Cells(22, j) = "Niveau 0" Or Sheets("EVRC - Semi-quantitatif").Cells(22, j) = "Niveau 1" Then
     Sheets("EVRC - Semi-quantitatif").Activate
     Sheets("EVRC - Semi-quantitatif").Range(Cells(4, j), Cells(22, j)).Copy
     Sheets("Conclusion").Activate
     Sheets("Conclusion").Range(Cells(4, k), Cells(22, k)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
      k = k + 1
       End If
      Next j
    End Sub
    Code de "Conclusion 2
    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
     
    Sub Conclusion2()
    Dim l As Integer
     Dim m As Integer
     Dim n As Integer
     k = 2
     n = 8
     l = 1
     While Sheets("EVRC - Quantitatif").Cells(22, l) <> Empty
     l = l + 1
     Wend
     For m = 2 To l
     If Sheets("EVRC - Quantitatif").Cells(22, m) = "Niveau 2" Or Sheets("EVRC - Quantitatif").Cells(22, m) = "Niveau 3" Then
     Sheets("EVRC - Quantitatif").Activate
     Sheets("EVRC - Quantitatif").Range(Cells(4, m), Cells(28, m)).Copy
     Sheets("Conclusion").Activate
     Sheets("Conclusion").Range(Cells(4, n), Cells(28, n)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
            , SkipBlanks:=False, Transpose:=False
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
      n = n + 1
       End If
      Next m
    End Sub
    "

    Je souhaiterais que les 2 opérations s'exécutent l'une aprés l'autre en une seule macro.
    Dans mon fichier test "Conclusions" copie 6 colonnes, c'est poiurquoi dans "Conclusion 2" n=8.

    Je suppose que la soution est simple du genre n= k+1, mais quand jeteste rien ne se passe je dosi oublier quelques détails aui ont leur imortance.

    Merci pour votre aide.

    Ptitbubu

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Hello,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub Conclusion3()
    Call Conclusion
    Call Conclusion2
    End sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    Merci,

    Mais mon n=8 dépend de dunombre de donnée a analysée.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Très clair comme réponse... Dépend de quelle façon ?
    Il te suffira de faire dépéndre ton n de cette dépendance dans le code.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    ALéatoire en fait je ne peux pas le déterminer à l'avance.
    La macro "Conclusion" va copier x colonnes deB à x , et la macro "Conclusion 2" va copier y colonnes de x+1 à y.
    D'ou mon hypothése que dans "Conclusion "2 n = k+1 (k variable de "Conclusion 1".

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Soit tu fais qqchose de propre. Soit tu bidouilles. Pour bidouiller

    A la fin de conclusion tu copies qqpart le nombre X
    Au debut de conclusion tu vas chercher ce X et tu fais X+1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub conclusion3()
    Call conclusion
    Call conclusion2
    'Tu effaces la case ou tu as mis le X
    End sub

  7. #7
    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
    Personnellement je ferai 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
    Sub Lancer()
     
    Call Conclusion(0)
    Call Conclusion(2)
    End Sub
     
    Private Sub Conclusion(ByVal Indice As Byte)
    Dim LastCol As Integer, j As Integer
    Dim k As Integer
     
    With Worksheets("EVRC - Semi-quantitatif")
        LastCol = .Cells(22, .Columns.Count).End(xlToLeft).Column
        For j = 2 To LastCol
            If .Cells(22, j) = "Niveau " & Indice Or .Cells(22, j) = "Niveau " & Indice + 1 Then
                .Range(.Cells(4, j), .Cells(22, j)).Copy
                With Worksheets("Conclusion")
                    k = .Cells(4, .Columns.Count).End(xlToLeft).Column + 1
                    .Range(.Cells(4, k), .Cells(22, k)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme
                    .Range(.Cells(4, k), .Cells(22, k)).PasteSpecial Paste:=xlPasteValues
                End With
            End If
        Next j
    End With
    End Sub

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    C'est la technique propre. Comme d'habitude Mercator, impressionnant de bonne volonté et de générosité!

Discussions similaires

  1. [ACCESS]Regrouper deux bases
    Par saejima dans le forum Sécurité
    Réponses: 11
    Dernier message: 26/04/2007, 11h27
  2. [CR10] Regrouper deux rapports dans un seul
    Par reda-ziad dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/01/2007, 15h44
  3. [VB.NET] Regrouper deux projets
    Par neuropathie dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/12/2005, 17h05
  4. [débutant] Comment regrouper deux tables ?
    Par maysa dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/10/2004, 18h50
  5. regrouper deux tables
    Par Shabata dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/05/2003, 15h02

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