XL 2019 La méthode select de la classe range a échoué

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maminat

XLDnaute Nouveau
Bonjour,
Je n'arrive pas à finaliser ma macro car le message "la méthode select de la classe range a échoué" s'affiche et bloque.
Voici les infos et merci pour votre aide
Private Sub CommandButton1_Click()

' Pour inhiber le rafraichissement de l'écran pendant l'exécution

Application.ScreenUpdating = False



' création de la variable pour enregistrer

Dim Feuille_a_copier As String



'nom de l'onglet à copier

Feuille_a_copier = "6847456"



'copie de l'onglet à copier

Worksheets(Feuille_a_copier).Copy



'Sauvegarde du fichier dans le répertoire cité

With ActiveWorkbook

.SaveAs Filename:=("C:\Users\nleveau\Desktop") & "\" & Feuille_a_copier & ".xlsx", FileFormat:=xlOpenXMLWorkbook





With ActiveSheet

'renommer l'onglet

.Name = Feuille_a_copier

'copier que les valeurs (pour supprimer les formules)

.UsedRange.Value = .UsedRange.Value

End With



With Worksheets

'Feuille_a_copier'

End With

Range("A1").Select

'selectionner puis supprimer les colonnes

Columns("H:H").Select

Selection.Delete Shift:=xlToLeft

' Range("H:H").Select

' Range("H:H,L:M,R:S").Select

' Range("R1").Activate

' Range("H:H,L:M,R:S,AA:AA").Select

' Range("AA1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK").Select

' Range("AJ1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK,AQ:AR,AZ:AZ").Select

' Range("AZ1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK,AQ:AR,AZ:AZ,BA:BD").Select

' Range("BA1").Activate

Selection.Delete Shift:=xlToLeft

Range("A1").Select

End With

Closes.SaveChanges



End Sub
 
Bonjour,
Je n'arrive pas à finaliser ma macro car le message "la méthode select de la classe range a échoué" s'affiche et bloque.
Voici les infos et merci pour votre aide
Private Sub CommandButton1_Click()

' Pour inhiber le rafraichissement de l'écran pendant l'exécution

Application.ScreenUpdating = False



' création de la variable pour enregistrer

Dim Feuille_a_copier As String



'nom de l'onglet à copier

Feuille_a_copier = "6847456"



'copie de l'onglet à copier

Worksheets(Feuille_a_copier).Copy



'Sauvegarde du fichier dans le répertoire cité

With ActiveWorkbook

.SaveAs Filename:=("C:\Users\nleveau\Desktop") & "\" & Feuille_a_copier & ".xlsx", FileFormat:=xlOpenXMLWorkbook





With ActiveSheet

'renommer l'onglet

.Name = Feuille_a_copier

'copier que les valeurs (pour supprimer les formules)

.UsedRange.Value = .UsedRange.Value

End With



With Worksheets

'Feuille_a_copier'

End With

Range("A1").Select

'selectionner puis supprimer les colonnes

Columns("H:H").Select

Selection.Delete Shift:=xlToLeft

' Range("H:H").Select

' Range("H:H,L:M,R:S").Select

' Range("R1").Activate

' Range("H:H,L:M,R:S,AA:AA").Select

' Range("AA1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK").Select

' Range("AJ1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK,AQ:AR,AZ:AZ").Select

' Range("AZ1").Activate

' Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK,AQ:AR,AZ:AZ,BA:BD").Select

' Range("BA1").Activate

Selection.Delete Shift:=xlToLeft

Range("A1").Select

End With

Closes.SaveChanges



End Sub
Bonsoir, un petit fichier serait le bienvenu

A+
 
Bonjour à tous

@Maminat
Juste en passant :

D'une manière générale à lire les demandes j'ai l’impression que presque tous les demandeurs travaillent pour la défense nationale et ont des fichiers secret défense
==> si je te le montre je suis obligé de te tuer 🤔 🤣

A croire que personne ne sait faire un fichier représentatif et anonymiser un fichier avec une dizaine ou vingtaine de lignes pour le rendre compatible avec le RGPD et reflétant la structure et le nom des onglets du fichier original !!!
C'est quoi représentatif ?

- représentatif, même organisation des lignes et des colonnes, mêmes libellés, même nom des TS, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être un simple copier coller du code.

PS:
Tu pourrais au minimum nous dire sur quelle ligne cela bloque
De plus les select et les activate dans bien des cas sont à proscrire

Bonne lecture
 
Bonsoir Maminat, cathodique, Phil69970,
Je n'arrive pas à finaliser ma macro car le message "la méthode select de la classe range a échoué" s'affiche et bloque.
Explication :

La macro est dans le code de la feuille du bouton.

Quand vous écrivez Range VBA considère que le Range est dans cette feuille.

Si cette feuille n'est pas la feuille active la sélection du Range ne peut pas se faire, il y a bug.

Correction :

Ne pas utiliser .Select ou .Activate.

Préciser la feuille du Range en écrivant par exemple :
VB:
Worksheets(Feuille_a_copier).Range("H:H,L:M,R:S,AA:AA,AG:AG,AJ:AK,AQ:AR,AZ:AZ").Delete
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
398
Retour