VBA EXCEL erreur de compilation [Résolu]

Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
Bonjour,
J'a un soucis : le message
"erreur de compilation : fonction ou variable attendu"
et "selection" (en dessous de rows("5:5) est en surbrillance
Voici le code :

Sub REPORT()
'
' REPORT Macro
'
'
  Sheets("base Faits Etablissement").Select
  Rows("5:5").Select
  selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  Range("A6:EZ6").Select
  selection.AutoFill Destination:=Range("A5:EZ6"), Type:=xlFillDefault
  Sheets("saisie simplifiée").Select
  Range("A26:BZ26").Select
  selection.Copy
  Sheets("base Faits Etablissement").Select
  Range("G5").Select
  selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  :=False, Transpose:=False
  Sheets("saisie simplifiée").Select
  Range( _
  "A2:B2,F2:G2,A7:D7,H6,A12:C12,E12:I12,K12:M12,O12:V12,X12:AA12,AC12,A17,D17:K18,L18,N17:P17,R17:S17,X17:AB17" _
  ).Select
  Range("X17").Activate
  Application.CutCopyMode = False
  selection.ClearContents
End Sub


Pourtant sur des essais simplifiés le même code marche…..
Help !

Le but est d'insérer une ligne 5 (par tassement vers le bas des autres lignes), de récupérer toutes les formules des cellules (entre A et EZ) et de mettre à jour certaines (à partir de G)
Débutant en VBA je ne trouve pas ce qu'il faut faire !

Merci d'avance pour vos lumières.

Michel
Afficher la suite 

1 réponse

Messages postés
26650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 octobre 2019
1857
0
Merci
Bonjour,

Il ne semble y avoir aucun souci avec le code que tu nous montres.
Le classeur ne serait pas protégé ?
Il y a des cellules verrouillées ?

Difficile de répondre sans avoir le fichier sous la main,





micheldu52
Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
https://wetransfer.com/downloads/ac7f910b36596c9a4fbc0cf5e4c7b54720191025210036/f445730472c895417c657d26ece1785920191025210036/e15289

va dans l'onglet "saisie simplifiée" et clique sur "mise à jour" cela devrait renvoyer les informations dans l'autre onglet

Ce fichier est fortement dégradé, mais j'ai laissé la structure "qui coince" (macro "report")

Merci d'avance pour ton aide !

Michel
f894009
Messages postés
14825
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 octobre 2019
1182 -
Bonjour a vous deux,

Le probleme vient de selction, le s n'est pas en majuscule!!!!!
J'ai recupere votre fichier, meme avec l'enregistreur de macro le probleme existe!!!!!

Suite:
Ai trouve, vous avez une procedure qui s'appelle selection dans le Module1

Sub selection()
'
' selection Macro
'

'
    Sheets("Selection").Select
End Sub


Suite:
Apres avoir renommer, toujours de meme!!

Suite:
Ma faute, avais vire deux sélections (a eviter, mais petite modif des lignes precedentes) et pas mis en commentaire les lignes selection.
Par contre le s de selection toujours en minuscule mais ca marche!!!
Bien renommer la procedure selection sinon plante
Remarque: tres lent en excecution!!
micheldu52
Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
un grand MERCI à vous deux !

J'étais focalisé sur la procédure qui s'arrêtait mais je n'avais pas pensé qu'un onglet nommé "selection" et une macro nommée "selection" entreraient en conflit avec la fonction selection d'excel….

En la renommant ("choix" en l'occurrence) ca marche impec ! Je comprends maintenant pourquoi mes tests simplifiés marchaient…. il n'y avait pas l'onglet et la macro évoquées plus haut!

Première utilisation de ce forum, solution en 24h, encore MERCI !!!!

PS: l'exécution est lente, car il y a (dans le fichier réel) pas loin de 100 000 calculs en réalité et qui doivent être relancés en fonction des saisies faites et des requêtes de l'utilisateur. Je vais d'ailleurs maintenant reprendre cela pour voir si certains calculs peuvent être optimisés et moins gourmand en "prise d'information" dans toute la base de données, et s'il n'y a pas des "calculs doublonnés" ce qui n'est pas impossible. Je devrais arriver à l'accélérer (ou du moins à la ralentir moins!).

Je reprends mon développement du "vrai" outil !

Michel

"ils ne savaient pas que c'était impossible alors ils l'ont fait" (Marx Twain)
jordane45
Messages postés
26650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 octobre 2019
1857 > micheldu52
Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
Histoire de gagner un peu en rapidité, tu peux, le temps de l'exécution des tes différentes macros, désactiver le refresh de l'écran et le réactiver à la fin de chaque macro (cela ne changera rien au fonctionnement d'excel... juste que tu ne verras pas les "modifs" en temps réel lorsque l'option est à false )
Pour ça, il faut donc jouer sur FALSE (ou TRUE ) le ScreenUpdating
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.screenupdating
micheldu52
Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
Merci, c'est intégré dans la macro la plus chronophage !
Début en VBA, conseils très intéressants, encore MERCI

Michel

"ils ne savaient pas que c'était impossible alors ils l'ont fait" (Marx Twain)
Commenter la réponse de jordane45