Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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?
 

badraaliou4

XLDnaute Occasionnel
Ok merci . Mais chez moi après le premier enregistrement si je remplie le combobox je ne peut plus renseigner les autres cellules.. il faut que j'ouvre une autre feuille et revenir dans la feuille accueil pour pouvoir renseigner la cellule montant et libellé.
 

patricktoulon

XLDnaute Barbatruc
re
perso je me contenterais de ca
VB:
Sub ajouter()
' ajouter Macro
    Dim mouvement$, compte$, montant$, libelle$, bool As Boolean
    'trouver les informations du contenu
    With Worksheets("accueil")
        mouvement = .Range("c5").Value: bool = mouvement <> ""
        compte = .Range("c7").Value: bool = bool And compte <> ""
        montant = .Range("c9").Value: bool = bool And montant <> ""
        libelle = .Range("c11").Value: bool = bool And libelle <> ""
        If bool Then
            arr = Array(Date, .[C5], .[C7], .[C9], .[C11])

            With Sheets("compte").ListObjects("Tableau2")
                .ListRows.Add
                  'MsgBox .ListRows(.ListRows.Count).Range.Address
                .ListRows(.ListRows.Count).Range = arr
            End With
        Else
            MsgBox "remplissez toute les cases SVP" & vbCrLf & " si toute fois vous refuseriez de les remplir ce classeur s'auto détruira dans 1 seconde"
        End If
    .Range("C5,C7,C9,C11").ClearContents
End With

End Sub
c'est quand même pas mission impossible non ?
et basta

ps: j'ai laissé tes 4 variable mais somme toute quand tu arrivera a comprendre le code tu constatera qu'elles sont inutiles aussi
 

patricktoulon

XLDnaute Barbatruc
re
allez le voila sans tes variables
VB:
Sub ajouter()
    Dim bool As Boolean
 
    With Worksheets("accueil")
        bool = .[C5] <> "" And .[C7] <> "" And .[C9] <> "" And .[C11] <> "" 'on obtient un boolean(true/false ) selon si tout est rempli ou non
        If bool Then
            arr = Array(Date, .[C5], .[C7], .[C9], .[C11])    'on construit un array en y metant la date au debut

            With Sheets("compte").ListObjects("Tableau2")    'on capte le tableau2 dans compte
                .ListRows.Add    ' on lui ajoute simplement une ligne
                .ListRows(.ListRows.Count).Range = arr    'on insere l'array dans la range que forme la nouvelle ligne
            End With
            MsgBox "c'est bon "
        Else
            MsgBox "remplissez toute les cases SVP" & vbCrLf & " si toute fois vous refuseriez de les remplir ce classeur s'auto detruira dans 1 seconde"
        End If
        .Range("C5,C7,C9,C11").ClearContents
    End With

End Sub
et entre parenthèses!!! SANS BOUGER DU SHEETS ACCUEIL
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Information. La méthode Add de la collection ListRows renvoie un objet ListRow. On peut donc faire ce que je fais toujours :
VB:
.ListRows.Add.Range.Value = arr
Enfin je prends toujours TVL comme nom du tableau (Table des Valeurs de la Ligne)
 

badraaliou4

XLDnaute Occasionnel
Vous pouvez mo
Ce code ne fait pas la même chose que mon code.
merci de remplacer par Ce code et vérifiez vous-même.
 

patricktoulon

XLDnaute Barbatruc
Bonjour dranreb
re oui c'est vrai
mais j'ai pensé que détailler l'object serait une source plus facile pour la compréhension, si on commence a tout abréger ça rentrera pas
au vue du code initial c'est pas maîtrisé
 

Discussions similaires

Réponses
5
Affichages
135
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…