Il m'arrive quelque chose que je trouve surprenant : j'ai importé une table
access sur une feuille excel. Jusque là, rien est à signaler.
Sauf que quand je fais une macro qui travaille sur cette feuille, ça ne
marche pas !
Si j'écris, par exemple Range("A2").Select et que j'exécute la macro, j'ai
un message d'erreur ! "la méthode select de la class Range a échoué"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
Bonjour,
dans les conditions telles que décrites ( si j'ai tout compris , il s'agit d'une importation de données depuis Access par Données/Données externes/Créer une requête ), je ne rencontre absolument pas ce problème. Peux-tu en dire + ?
A+
Bonjour,
dans les conditions telles que décrites ( si j'ai tout compris , il
s'agit d'une importation de données depuis Access par
Données/Données externes/Créer une requête ), je ne rencontre
absolument pas ce problème.
Peux-tu en dire + ?
dans les conditions telles que décrites ( si j'ai tout compris , il s'agit d'une importation de données depuis Access par Données/Données externes/Créer une requête ), je ne rencontre absolument pas ce problème. Peux-tu en dire + ?
A+
Benoit
Voilà ma macro. La feuille "base de données" c'est là où j'ai ma requête.
Merci pour ton aide !
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim Fichier As String Dim i, k As Integer Dim n As String If Target.Row > 8 And Target.Column = 2 Then n = Target.Value Sheets("BaseDonnees").Select Range("A1").Select 'While i < 1000 And k = 0 'If Range("F2").Offset(i, 0).Value = n Then 'Range("F2").Offset(i, -5).Select 'k = 1 'End If 'i = i + 1 'Wend End If Cancel = True End Sub -- Benoit
Bonjour,
dans les conditions telles que décrites ( si j'ai tout compris , il s'agit d'une importation de données depuis Access par Données/Données externes/Créer une requête ), je ne rencontre absolument pas ce problème. Peux-tu en dire + ?
A+
Voilà ma macro. La feuille "base de données" c'est là où j'ai ma requête.
Merci pour ton aide !
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel
As Boolean)
Dim Fichier As String
Dim i, k As Integer
Dim n As String
If Target.Row > 8 And Target.Column = 2 Then
n = Target.Value
Sheets("BaseDonnees").Select
Range("A1").Select
'While i < 1000 And k = 0
'If Range("F2").Offset(i, 0).Value = n Then
'Range("F2").Offset(i, -5).Select
'k = 1
'End If
'i = i + 1
'Wend
End If
Cancel = True
End Sub
--
Benoit
Bonjour,
dans les conditions telles que décrites ( si j'ai tout compris , il
s'agit d'une importation de données depuis Access par
Données/Données externes/Créer une requête ), je ne rencontre
absolument pas ce problème.
Peux-tu en dire + ?
Voilà ma macro. La feuille "base de données" c'est là où j'ai ma requête.
Merci pour ton aide !
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim Fichier As String Dim i, k As Integer Dim n As String If Target.Row > 8 And Target.Column = 2 Then n = Target.Value Sheets("BaseDonnees").Select Range("A1").Select 'While i < 1000 And k = 0 'If Range("F2").Offset(i, 0).Value = n Then 'Range("F2").Offset(i, -5).Select 'k = 1 'End If 'i = i + 1 'Wend End If Cancel = True End Sub -- Benoit
Bonjour,
dans les conditions telles que décrites ( si j'ai tout compris , il s'agit d'une importation de données depuis Access par Données/Données externes/Créer une requête ), je ne rencontre absolument pas ce problème. Peux-tu en dire + ?
A+
anonymousA
Au lieu de Sheets("BaseDonnees").Select Range("A1").Select
écrire Sheets("BaseDonnees").Range("A2").Select . Il faut référencer la plage à la feuille de selection car tu appelles cette méthode depuis le module de classe d'une autre feuille.
Ceci dit, s'il n'est pas nécéssaire absolument de sélectionner une plage ( ce qui est extrêmement rare en VBA) pour faire quelquechose avec cellle-ci , je te le déconseille car ca en fait que ralentir inutilement la macro et nécessite dans des cas particuliers d'être géré très finement.
A+
Au lieu de Sheets("BaseDonnees").Select
Range("A1").Select
écrire
Sheets("BaseDonnees").Range("A2").Select . Il faut référencer la
plage à la feuille de selection car tu appelles cette méthode depuis
le module de classe d'une autre feuille.
Ceci dit, s'il n'est pas nécéssaire absolument de sélectionner une
plage ( ce qui est extrêmement rare en VBA) pour faire quelquechose
avec cellle-ci , je te le déconseille car ca en fait que ralentir
inutilement la macro et nécessite dans des cas particuliers d'être
géré très finement.
Au lieu de Sheets("BaseDonnees").Select Range("A1").Select
écrire Sheets("BaseDonnees").Range("A2").Select . Il faut référencer la plage à la feuille de selection car tu appelles cette méthode depuis le module de classe d'une autre feuille.
Ceci dit, s'il n'est pas nécéssaire absolument de sélectionner une plage ( ce qui est extrêmement rare en VBA) pour faire quelquechose avec cellle-ci , je te le déconseille car ca en fait que ralentir inutilement la macro et nécessite dans des cas particuliers d'être géré très finement.