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 :

copier des données sur feuil excel puis imprimer


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut copier des données sur feuil excel puis imprimer
    Bonjour,

    j'avais effectuer a l'aide du forum des msgbox pour m'alerter des RDV a prendre chez mes clients.

    ce system fonctionne très bien, mais le soucis c'est que toute les msgbox s'affiche a la suite!

    est-il possible de copier les valeurs des msgbox sur une autre feuil excel pour pouvoir l'imprimer?


    voici le code actuel:

    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
    Sub Macro1()
     
    Dim i As Long, DerniereLigne  As Long
     
     
    'récupère la dernière ligne de la colonne S
        DerniereLigne = Range("S65536").End(xlUp).Row
     
    'de la 2ème a la dernière ligne
        For i = 2 To DerniereLigne
     
     
     
    '1ere visite
        If Range("W" & i) = 0 And Range("X" & i) < 16 And Range("X" & i) > 0 Then MsgBox "Attention !!! Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 1ere visite", 64, "Information"
        If Range("W" & i) = 0 And Range("X" & i) < 0 Then MsgBox "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 1ere visite", 48, "ALERTE!!!"
        Next i
     
    'de la 2ème a la dernière ligne
        For i = 2 To DerniereLigne
     
    '2ème visite
        If Range("Z" & i) = 0 And Range("AA" & i) < 16 And Range("AA" & i) > 0 Then MsgBox "Attention !!! Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite", 64, "Information"
        If Range("Z" & i) = 0 And Range("AA" & i) < 0 Then MsgBox "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite", 48, "ALERTE!!!"
        Next i
     
    End Sub

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Salut,

    Tout simplement, comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Range("Z" & i) = 0 And Range("AA" & i) < 0 Then
        MsgBox "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite", 48, "ALERTE!!!"
        Sheets("NomDeTaFeuilleOuTuVeuxMettreLesDonnées").Range("A1").Value = "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite"
    End If
    Je suppose que c'est ce que tu souhaites...

    Pour l'impression, je te laisse lancer l'enregistreur de macros

    A+
    DeaD

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,

    Une autre solution, tout mettre dans un string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Mess As String
    Mess = Mess & "Chemin  : " & Application.AutoRecover.Path & " " & vbCrLf
    Mess = Mess & "Enabled : " & Application.AutoRecover.Enabled & " " & vbCrLf
    Mess = Mess & "Time       : " & Application.AutoRecover.Time & " minutes" & vbCrLf
     
    MsgBox Mess

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par DeaD78 Voir le message
    Salut,

    Tout simplement, comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Range("Z" & i) = 0 And Range("AA" & i) < 0 Then
        MsgBox "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite", 48, "ALERTE!!!"
        Sheets("NomDeTaFeuilleOuTuVeuxMettreLesDonnées").Range("A1").Value = "TRES URGENT !!! MAINTENANCE EN RETARD Prendre RDV " & vbCrLf & Range("A" & i) & vbCrLf & " 2ème visite"
    End If
    Je suppose que c'est ce que tu souhaites...

    Pour l'impression, je te laisse lancer l'enregistreur de macros

    A+
    Bonjour, ton code fonctionne bien mais le soucis c'est que tout les messages rentre dans la même cellule donc quand je suis retourner sur la feuille 2 je n'avait qu'un seul message dans la cellule A1.

    j'ai remplacer Range("A1") par Range("A" & i).et la je reçois tout les messages.
    sauf qu'au lieu d'avoir tout a la suite j'ai tout les message a la même ligne que sur la feuille 1 (donc beaucoup de blanc)

    Y a t-il une possibilité de tout mettre a la suite??

    merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    Bonjour,

    Une autre solution, tout mettre dans un string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Mess As String
    Mess = Mess & "Chemin  : " & Application.AutoRecover.Path & " " & vbCrLf
    Mess = Mess & "Enabled : " & Application.AutoRecover.Enabled & " " & vbCrLf
    Mess = Mess & "Time       : " & Application.AutoRecover.Time & " minutes" & vbCrLf
     
    MsgBox Mess
    Bonjour aalex 38

    j'ai pas tout compris le principe de ce code pourrait tu m'expliquer d'avantage?

    merci

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,

    Dans une variable string tu peux ajouter des lignes avec les retours chariot (vbcr), et ensuite tu affiches le tout quand tu veux.
    Il y a tout de même une limite aux nombres de lignes que tu peux afficher dans ton msgbox.

    Le mieux pour comprendre, prend mon code colle le dans un sub et regardes ce qui se passe, si'il y a quelque chose que tu n'as pas compris, tu dis.
    A+

    Edit : Mess = Mess & ...=> signifie que l'on ajoute au string qulequechose, on ne supprime ps ce qu'il y avait avant.
    Par exemple Si on a Mess = A => A
    MESS = MESS & " + B" => A + B

Discussions similaires

  1. [XL-2007] Copier des données sur plusieurs feuilles suivant certains critères
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/09/2014, 19h04
  2. copier des données sur autre feuille excel
    Par mirage37 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 17/07/2012, 11h33
  3. trier et copier des données sur une autre feuille excel
    Par mirage37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/07/2012, 17h08
  4. Copier des données de classeurs Excel fermés vers un classeur ouvert
    Par gwen-al dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/03/2008, 17h00
  5. [VBA-A]Copier des données d'Excel vers Word
    Par soad029 dans le forum VBA Word
    Réponses: 15
    Dernier message: 16/03/2006, 11h56

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