OVH Cloud OVH Cloud

Pblème VBA SUITE ...

1 réponse
Avatar
kalinaja
Bonjour,

Je me permets de vous remonter ce post n'ayant pas eu de suite ... étouffé
par la pléthore de demandes ...et n'étant toujours pas résolu

Par ailleurs, je me permets d'ajouter un point 3 : est il possible de
d'empêcher les utilisateurs d'utiliser la fonction autofilter après que la
macro ait fait son oeuvre ???

en vous remerciant pour votre aide,
Cordialement,

K.

Bonjour Clément,

Merci pour votre réponse,

en fait la casse a bien été respectée pour le champs sheets(""),
et quand j'utilise Selection cela déclenche une erreur de type 13.

Donc je sèche ...marche pô ...

K.

"Clément Marcotte" a écrit :

> Bonjour,
>
> > 1. il ne s'éxecute que si le classeur est positionné sur la feuille
> param
> > malgrès le "Sheets("Param").Select" ??? pourquoi tant de haine ? (au
> départ,
> > dans mon esprit tortueux la feuille param était censée être masqué
> ....du coup
> > forcément ça marche beaucoup moins bien ...)
>
> À première vue, et pas testé:
>
> Contrairement au DOS, Il y a des situations où VBA est sensible à la
> casse des mots. Si tu veux sélectionner la feuille "param", tu dois
> avoir Sheets("param").select et si tu veux sélectionner la feuille
> paRam, tu dois avoir Sheets("paRam").select etc.
>
> Mais pour des adresses de cellule, range("z1") ou range("Z1"), c'est
> pareil.
>
>
>
> > 2.en fait comme ce n'est pas marqué ici la msgbox était censée
> retourner les
> > deux cellules sélectionnées au préalable, mais là je n'ai pas trouvé
> le moyen
> > de lui faire comprendre que c'est la sélection que je veux pas que
> > l'activecell ...
>
> Toujours à première vue et pas testé; remplace ActiveCell par
> selection.
>
> --
> On apprend pas à un vieux singe à faire des grimaces
>
>
Bonjour,

Débutant en vba, je crie "à l'aide !!! arggghh"

j'ai bidouillé ce code à l'aide ressources sur le net (et un peu avec ma
petite tête vide ...) :

Function fOSUserName() As String
' Retourne le nom d'usager fourni lors du branchement au réseau.
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If

'sélectionne le FOusername dans la liste de param
Sheets("Param").Select
Range("I:I").Select
Selection.Find(What:=fOSUserName, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select

'décale la sélection d'une ligne pour sélectionner le prénom
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select

'ajoute la colonne nom à la sélection
With ActiveCell
Union(.Cells, .Offset(0, 1)).Select
End With
'affiche le contenu de la sélection
MsgBox "bonjour " & ActiveCell

or :
1. il ne s'éxecute que si le classeur est positionné sur la feuille param
malgrès le "Sheets("Param").Select" ??? pourquoi tant de haine ? (au départ,
dans mon esprit tortueux la feuille param était censée être masqué ...du coup
forcément ça marche beaucoup moins bien ...)
2.en fait comme ce n'est pas marqué ici la msgbox était censée retourner les
deux cellules sélectionnées au préalable, mais là je n'ai pas trouvé le moyen
de lui faire comprendre que c'est la sélection que je veux pas que
l'activecell ...

j'espère que c'est à peu près clair ...
si vous avez la solution ....
D'avance merci !!!

K.

1 réponse

Avatar
Clément Marcotte
Bonjour,

La macro est-elle dans un module standard, ou dans le module de la
feuille ?

Le module de la feuille s'obtient avec un clic-droit sur l'icône de la
feuille, et affichage du code. Le module standard s'obtient avec
Insertion - module.



--
On apprend pas à un vieux singe à faire des grimaces
"kalinaja" a écrit dans le
message de news:
Bonjour,

Je me permets de vous remonter ce post n'ayant pas eu de suite ...
étouffé

par la pléthore de demandes ...et n'étant toujours pas résolu

Par ailleurs, je me permets d'ajouter un point 3 : est il possible
de

d'empêcher les utilisateurs d'utiliser la fonction autofilter après
que la

macro ait fait son oeuvre ???

en vous remerciant pour votre aide,
Cordialement,

K.

Bonjour Clément,

Merci pour votre réponse,

en fait la casse a bien été respectée pour le champs sheets(""),
et quand j'utilise Selection cela déclenche une erreur de type 13.

Donc je sèche ...marche pô ...

K.


Bonjour,

1. il ne s'éxecute que si le classeur est positionné sur la
feuille



param
malgrès le "Sheets("Param").Select" ??? pourquoi tant de haine ?
(au



départ,
dans mon esprit tortueux la feuille param était censée être
masqué



....du coup
forcément ça marche beaucoup moins bien ...)


À première vue, et pas testé:

Contrairement au DOS, Il y a des situations où VBA est sensible à
la


casse des mots. Si tu veux sélectionner la feuille "param", tu
dois


avoir Sheets("param").select et si tu veux sélectionner la feuille
paRam, tu dois avoir Sheets("paRam").select etc.

Mais pour des adresses de cellule, range("z1") ou range("Z1"),
c'est


pareil.



2.en fait comme ce n'est pas marqué ici la msgbox était censée
retourner les

deux cellules sélectionnées au préalable, mais là je n'ai pas
trouvé



le moyen
de lui faire comprendre que c'est la sélection que je veux pas
que



l'activecell ...


Toujours à première vue et pas testé; remplace ActiveCell par
selection.

--
On apprend pas à un vieux singe à faire des grimaces


Bonjour,


Débutant en vba, je crie "à l'aide !!! arggghh"

j'ai bidouillé ce code à l'aide ressources sur le net (et un peu
avec ma

petite tête vide ...) :

Function fOSUserName() As String
' Retourne le nom d'usager fourni lors du branchement au réseau.
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If lngX <> 0 Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = ""
End If

'sélectionne le FOusername dans la liste de param
Sheets("Param").Select
Range("I:I").Select
Selection.Find(What:=fOSUserName, After:¬tiveCell,
LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _

MatchCase:úlse, SearchFormat:úlse).Select

'décale la sélection d'une ligne pour sélectionner le prénom
Dim LigVar, ColVar
LigVar = 0
ColVar = 1
Selection.Offset(LigVar, ColVar).Select

'ajoute la colonne nom à la sélection
With ActiveCell
Union(.Cells, .Offset(0, 1)).Select
End With
'affiche le contenu de la sélection
MsgBox "bonjour " & ActiveCell

or :
1. il ne s'éxecute que si le classeur est positionné sur la feuille
param

malgrès le "Sheets("Param").Select" ??? pourquoi tant de haine ? (au
départ,

dans mon esprit tortueux la feuille param était censée être masqué
...du coup

forcément ça marche beaucoup moins bien ...)
2.en fait comme ce n'est pas marqué ici la msgbox était censée
retourner les

deux cellules sélectionnées au préalable, mais là je n'ai pas trouvé
le moyen

de lui faire comprendre que c'est la sélection que je veux pas que
l'activecell ...

j'espère que c'est à peu près clair ...
si vous avez la solution ....
D'avance merci !!!

K.