Bonsoir à tous,
A chaque jour sa difficulté.
Chaque "bout de mon programme" écrit (avec parfois votre aide), m'amène vers d'autres lignes de codes et ... leurs lots de difficultés.
Alors ... Mon problème du jour. Il me semblait pourtant banal d'écrire ces quelques lignes ... hélas "ça passe pas" et je ne comprends pas pourquoi.
Voici le problème.
J'ai un programme principal qui contient mes macros.
L'une d'elle me permet d'ouvrir des fichiers déjà enregistrés sur le disque dur. A l'ouverture de ces fichiers, je crée deux boutons sur ces fichier qui s'ouvrent, l'un pour Imprimer, l'autre pour Enregistrer. Avec votre aide, tout cela fonctionne très bien.
Donc je me trouve avec mon "FichierOuvert" au premier plan par rapport à mon "ClasseurPrincipal". Après l'enregistrement de mon "FichierOuvert" et avant de le refermer, je souhaiterais agir sur l'une des feuilles de mon "ClasseurPrincipal".
C'est là que se situe mon problème. Il me faut "repasser" mon "ClasseurPrincipal" au plemier plan (ce que j'ai fait (il me semble) avec "Minimized", ensuite, je sélectionne bien la feuille concernée, mais je ne parviens pas à me positionner dessus (je dois, au départ, me placer en A4, puis sélectionner, dans cette colonne, la plage de cellule qui contient des données).
Une fois la feuille sélectionnée, sur mes commandes : Range ("A4").Select,, par exemple, je reçois le message : Erreur 1004, La méthode Select de la classe range a échoué.
Voici le "bout de code concerné" :
Voilà, j'espère avoir été assez clair.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 'En fonction de la variable FacDev, le fichier sera enregistré dans un répertoire ou un autre If FacDev = "Facture" Then CheminFichier = ThisWorkbook.Path & "\" NomFichier = ActiveWorkbook.Name LongNomFichier = Len(NomFichier) NomFichier = Mid(NomFichier, 1, LongNomFichier - 4) ' 'Je sauvegarde le fichier ouvert With ActiveWorkbook .SaveAs Filename:=CheminFichier & NomFichier ' 'Je minimise le classeur que je viens de sauvegarder 'pour retrouver le ClasseurPrincipal Application.WindowState = xlMinimized NomProgramme = ActiveWorkbook.Name ' If Préparateur = "Toto" Then 'Les deux ligne suivantes "passe bien" Workbooks(NomProgramme).Activate Sheets("Factures Toto").Activate 'C'est ici que le problème se pose. Il se produit sur les deux lignes Range("A4").Select Range("A4", [A4].End(xlDown)).Select 'Je récupère le nombre de lignes "utilisées" dans la colonne 'puis je teste chaque cellule pour trouver celle qui porte 'le nom du fichier que j'ai rouvert et re-sauvegardé NombreLignes3 = Selection.Rows.Count Range("A4").Select ' For i = 1 To NombreLignes3 If ActiveCell.Value <> NomFichier Then ActiveCell.Offset(1, 0).Select 'Lorsque j'ai trouvé le nom du fichier, je supprime la ligne de celui-ci Else: Selection.EntireRow.Delete End If Next
Encore une fois, merci de votre aide pour ce problème qui, je le pense doit être d'une grande évidence pour beaucoup ...
Danad38
Partager