XL 2013 Afficher patienter pendant de l'exécution d'un macro

badraaliou4

XLDnaute Occasionnel
Bonjour mes chers,
J'ai trois feuille: Accueil, compte et load
Mon Macro permet de copier des données de la feuille accueil vers la feuille compte.
Je veux que pendant le Exécution du macro il affiche la feuille"load"
Ci-dessous mon code qui ne marche pas.
VB:
Sheets("load").select
application.screenupdating=false
sheets("Accueil").select
.............
application.screenupdating=true
Sheets("load").select
sheets("Accueil").select
range("c7").select
end sub
Avec ce code la feuille Accueil reste toujours afficher.
Merci pour votre aide?
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Peut-être ceci :

VB:
application.screenupdating=false
Sheets("load").select
sheets("Accueil").select
........
Sheets("load").select
sheets("Accueil").select
range("c7").select
Sheets("load").select
application.screenupdating=true
end sub

Bonne journée !
 

Jacky67

XLDnaute Barbatruc
Bonjour mes chers,
J'ai trois feuille: Accueil, compte et load
Mon Macro permet de copier des données de la feuille accueil vers la feuille compte.
Je veux que pendant le Exécution du macro il affiche la feuille"load"
Ci-dessous mon code qui ne marche pas.
VB:
Sheets("load").select
application.screenupdating=false
sheets("Accueil").select
.............
application.screenupdating=true
Sheets("load").select
sheets("Accueil").select
range("c7").select
end sub
Avec ce code la feuille Accueil reste toujours afficher.
Merci pour votre aide?
Bonjour,
Sans voir la macro complète, il sera difficile de répondre
 

badraaliou4

XLDnaute Occasionnel
VB:
sub ajouter()
Sheets("load").select
application.screenupdating=false
sheets("Accueil").select
range("a7").copy
sheets("compte").range("a12").end(xldown).select
activecell.offset(1,0).select
selestion.pastespeciale paste:=xlpastevalues
............

sheets("Accueil").range("a7").select
selection.clearcontents
application.screenupdating=true
Sheets("load").select
sheets("Accueil").select
range("c7").select
end sub

Je crois que pouvez m'aider avec ça .
 

JBARBE

XLDnaute Barbatruc
Re,
Peut-être ceci :
sheets("compte").range("a12"). (voir range("A12")

VB:
sub ajouter()
application.screenupdating=false
sheets("Accueil").select
range("a7").copy
sheets("compte").range("a12").end(xldown).offset(1,0).select
selestion.pastespeciale paste:=xlpastevalues

sheets("Accueil").range("a7").clearcontents

sheets("Accueil").select
range("c7").select
Sheets("load").select
application.screenupdating=true
end sub

Un exemple de sheets("compte").range("a12").end(xldown).offset(1,0).select : Dans le fichier classeur !
 

Pièces jointes

  • Classeur1.xls
    58.5 KB · Affichages: 3
Dernière édition:

badraaliou4

XLDnaute Occasionnel
Re,
Peut-être ceci :
sheets("compte").range("a12"). (voir range("A12")

VB:
sub ajouter()
application.screenupdating=false
sheets("Accueil").select
range("a7").copy
sheets("compte").range("a12").end(xldown).select
activecell.offset(1,0).select
selestion.pastespeciale paste:=xlpastevalues

sheets("Accueil").range("a7").clearcontents

sheets("Accueil").select
range("c7").select
Sheets("load").select
application.screenupdating=true
end sub
J'aimerai que pendant l'exécution de la macro la feuille "load" reste afficher.
Dans cette feuille j'ai écris . "Merci de patienter"
 

Jacky67

XLDnaute Barbatruc
RE..
S'il s'agit de copier la cellule A7 de la feuille "Accueil" vers la première cellule vide de la colonne A de la feuille "compte"
VB:
Sub ajouter()
    Sheets("load").Activate
    Application.ScreenUpdating = False
    With Sheets("compte")
        Sheets("Accueil").Range("a7").Copy .Range("a" & .Cells(.Rows.Count, "A").End(xlUp).Row + 1)
        '............
        Sheets("Accueil").Range("a7").ClearContents
    End With
    Application.ScreenUpdating = True
    Sheets("Accueil").Activate
    Range("c7").Select
End Sub
Sinon explique ce que cette macro est sensée faire.
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re,
Où se trouve " Merci de patienter " dans la macro !

VB:
sub ajouter()
application.screenupdating=false
sheets("Accueil").range("a7").copy
sheets("compte").range("a12").end(xldown).offset(1,0).select
selestion.pastespeciale paste:=xlpastevalues
sheets("Accueil").range("a7").clearcontents
sheets("Accueil").select
range("c7").select
Sheets("load").select
application.screenupdating=true
end sub

Il y avait des lignes inutiles et Sheets("load").select au début ne sert à rien !
@+
 

badraaliou4

XLDnaute Occasionnel
Re,
Où se trouve " Merci de patienter " dans la macro !

VB:
sub ajouter()
application.screenupdating=false
sheets("Accueil").range("a7").copy
sheets("compte").range("a12").end(xldown).offset(1,0).select
selestion.pastespeciale paste:=xlpastevalues
sheets("Accueil").range("a7").clearcontents
sheets("Accueil").select
range("c7").select
Sheets("load").select
application.screenupdating=true
end sub

Il y avait des lignes inutiles et Sheets("load").select au début ne sert à rien !
@+
"Merci de patienter" se trouve dans la feuille "load"
J'ai écris dans une forme prédéfinie
Centré au beau milieu de la feuille "load"
 

Roland_M

XLDnaute Barbatruc
Bonjour,

concernant le message patienter, je sais pas si cela a été proposé mais je le donne au cas où !?
dans le StatusBar
Sub ....

'au début du code
Application.DisplayStatusBar = True 'aff barre
Application.StatusBar = Message 'exp "Veuillez patienter ..."
'...
'... exécution du code
'...
'en fin de code efface
Application.StatusBar = "" 'efface

End Sub ...

et pour un progress bar:
Code:
Public Sub AffProgressStatusBar(ValEnCours As Variant, ValMaxi As Variant)
If ValEnCours > ValMaxi Then Exit Sub
LenMsg = 50: If ValMaxi < LenMsg Then LenMsg = ValMaxi
If ValEnCours Mod (ValMaxi / LenMsg) = 0 Or ValEnCours = ValMaxi Then
   xBar = Int(LenMsg / ValMaxi * ValEnCours + 0.5): If xBar > LenMsg Then xBar = LenMsg
   M$ = String(xBar * 3, Chr(8)) & String((LenMsg - xBar) * 3, Chr(7)) & Chr(8) & " " & ValEnCours & "/" & ValMaxi
  'M$ = String(xBar * 3, "*") & String((LenMsg - xBar) * 3, "_") & "*" & " " & ValEnCours & "/" & ValMaxi
   Application.StatusBar = M$: DoEvents
End If
End Sub
 
Dernière édition:

badraaliou4

XLDnaute Occasionnel
Et pour la barre de progression.
je copie la formule où?
ci-dessous mon code complet

VB:
Sub ajoutclient()
Dim mouvement As String
    Dim compte As String
    Dim montant As String
    Dim libelle As String
'trouver les informations du contenu
    mouvement = Worksheets("accueil").Range("c7").Value
    compte = Worksheets("accueil").Range("c9").Value
    montant = Worksheets("accueil").Range("c11").Value
    libelle = Worksheets("accueil").Range("c13").Value
'si les champs ne sont pas remplis
    If mouvement = "" Or compte = "" Or montant = "" Or libelle = "" Then
        MsgBox ("Merci de renseigner les champs vide")
    Sheets("Accueil").Select
    Range("C7").Select
'si tous les champs sont remplis
    Else
'ajouter une ligne
    Sheets("Compte client").Select
    Range("a12").Select
    ActiveCell.End(xlDown).Select
    Selection.ListObject.ListRows.Add AlwaysInsert:=True

'ajouter aussi le compte client
    Sheets("Accueil").Select
    Range("C5").Select
    Selection.Copy
    Sheets("Compte client").Select
    Range("A12").Select
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "m/d/yyyy"
    Sheets("Accueil").Select
    Range("C9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("B12").Select
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("C10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("H10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("I10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
'supprimer les données saisies dans la page accueil
    Sheets("Accueil").Select
    Range("C11").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("C9").Select
    Selection.ClearContents
    ComboBox1 = ""
    Range("C13").Select
    Selection.ClearContents
    Range("C7").Select
    Selection.ClearContents
    ActiveWorkbook.Save
    End If
End Sub
 

badraaliou4

XLDnaute Occasionnel
Voici le code complet
VB:
Sub ajoutclient()
Dim mouvement As String
    Dim compte As String
    Dim montant As String
    Dim libelle As String
'trouver les informations du contenu
    mouvement = Worksheets("accueil").Range("c7").Value
    compte = Worksheets("accueil").Range("c9").Value
    montant = Worksheets("accueil").Range("c11").Value
    libelle = Worksheets("accueil").Range("c13").Value
'si les champs ne sont pas remplis
    If mouvement = "" Or compte = "" Or montant = "" Or libelle = "" Then
        MsgBox ("Merci de renseigner les champs vide")
    Sheets("Accueil").Select
    Range("C7").Select
'si tous les champs sont remplis
    Else
'ajouter une ligne
    Sheets("Compte client").Select
    Range("a12").Select
    ActiveCell.End(xlDown).Select
    Selection.ListObject.ListRows.Add AlwaysInsert:=True

'ajouter aussi le compte client
    Sheets("Accueil").Select
    Range("C5").Select
    Selection.Copy
    Sheets("Compte client").Select
    Range("A12").Select
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "m/d/yyyy"
    Sheets("Accueil").Select
    Range("C9").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("B12").Select
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C13").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("C10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C11").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("H10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Accueil").Select
    Range("C7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Compte client").Select
    Range("I10000").Select
    ActiveCell.End(xlUp).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
'supprimer les données saisies dans la page accueil
    Sheets("Accueil").Select
    Range("C11").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("C9").Select
    Selection.ClearContents
    ComboBox1 = ""
    Range("C13").Select
    Selection.ClearContents
    Range("C7").Select
    Selection.ClearContents
    ActiveWorkbook.Save
    End If
End Sub
 

Discussions similaires

Réponses
5
Affichages
98

Membres actuellement en ligne

Statistiques des forums

Discussions
312 107
Messages
2 085 354
Membres
102 873
dernier inscrit
yayo