VBA EXCEL erreur de compilation [Résolu]

Signaler
Messages postés
5
Date d'inscription
vendredi 25 octobre 2019
Statut
Membre
Dernière intervention
26 octobre 2019
-
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

1 réponse

Messages postés
29205
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 687
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,





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
Messages postés
15271
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
12 août 2020
1 326
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!!
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)
Messages postés
29205
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 août 2020
2 687 >
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
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)