Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sos vba excel ???

2 réponses
Avatar
kalinaja
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.

2 réponses

Avatar
Clément Marcotte
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

Avatar
kalinaja
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 ...


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