Manipuler des labels

M

Munchkin

Guest
Bonjour le forum

Mon problème c'est pour manipuler des labels avec une boucle for

donc mes label sont nommées : Label11 Label12 Label13 .....

je voudrais avec une boucle pourvoir changer leur emplacement de la facon suivante

For j = 1 To 9
Label = "Label" & 1 & j
Sheets(PLANNING).Label.Caption = Sheets(SIMULATEUR).Cells(j, Col_Edition)
Sheets(PLANNING).Label.Left = Sheets(SIMULATEUR).Cells(j, Col_Tps_Deb * 150)
Next j

Cela ne marche pas peut etre c'est parce que Label = "Label11" (c'est un string)

Comment faire?
Merci beaucoup beaucoup

Munchkin
 
@

@+Thierry

Guest
Bonjour Munchkin, le Forum

Sans faire une adaptation à tes feuilles, ce que je pense tu sais faire, voici comment boucler sur tes Labels :

Sub TheLabeling()
Dim i As Byte

For i = 1 To 9 'attention subordonné à la présence de 9 Labels nommés Label1,2, etc
With OLEObjects("Label" & i)
.Object.Caption = "Je suis la Label" & i
End With
Next
End Sub


Bon Appétit
@+Thierry
 
M

Munchkin

Guest
Merci Thierry,

Le problème c'est qu'il me donne une erreur, que la méthode OLEObjects a échoué

je selectionne la page en question et je fais ca

Sheets(PLANNING).Activate
For j = Premier_Ligne_Saisie_Edition To num_Dernier_Ligne_Saisie_Edition
Label = "Label" & Machine1_Machine2 & (j - (Premier_Ligne_Saisie_Edition - 1))
---> With OLEObjects(Label)
.Object.Caption = Sheets(SIMULATEUR).Cells(j, Col_Edition)
.Object.Left = Sheets(SIMULATEUR).Cells(j, Col_Tps_Deb * 150)
.Object.Visible = True
End With
Next j

Certainement je ne sais quoi faire :) :(

Merci de m'aider encore un peut plus
Munchkin
 
M

Munchkin

Guest
apparement les shapes c'est pour les shémas ou les objet qu'on ajoute nous meme et qui ne sont pas de visual basic!!! c'est ca?

je n'ai pas l'aide en ligne de visual basi et je n'arrive pas à l'installer grrrrrrrrrrrrrr

bon, ect ce que vour pourriez m'expliquer ca aussi?

merci de nouveau
Munchkin
 
@

@+Thierry

Guest
Re Munchkin, le Forum

  Arf tu parles de Labels de la barre d'outils "Formulaires" Numéro 1 ci-dessous...



Si tu n'as pas trop avancé dans ton projet, utilise plutôt les ActiveX de la Barre d'Outils "Contrôles" bien plus puissants et pratiques, et le code que je t'ai donné fonctionnera...

Maintenant si tu veux persister avec les Label de la Barre 1... Alors essaie ceci :

Sub TheLabelingFormulaire()
Dim i As Byte

For i = 1 To 9 'attention subordonné à la présence de 9 Labels nommés Label 1, Label 2, etc
ActiveSheet.Shapes("Label " & i).Select
Selection.Characters.Text = "Je suis le Label" & i
Next
End Sub

Etrangement on est semble-t'il obligé de faire un Select, la manip directe :

With ActiveSheet.Shapes("Label " & i)
.Characters.Text = "Je suis la Label" & i
End with
Ne Passe pas...

Attention aussi au nom des Labels ("Label 1", "Label 2" etc) avec un espace (ou bien les renommer par Menu Insertion Nom) et aussi à cette façon un peu aléatoire qu'à Excel de numéroter les Labels.... Shape... (Avec les Label OLEObject ActiveX de la Barre "Contrôles", il n'y a pas ce souci)

Pour le reste, je ne comprends pas ta macro ... Mais je pense que l'erreur vient sourtout de cette confusion entre les deux type de Label...

Bon Appétit
@+Thierry
 
@

@+Thierry

Guest
Re Munchkin, le Forum

Pour l'installation de l'Aide VBA, avec le CD d'Office il faut que tu fasses une Installation Personalisée, et dans les paramètres d'installation d'Excel tu coches tout ce qui a trait à VBA, Aide VBA, etc etc (Idem pour Word et autres si besoin).

De mémoire, il me semble que l'Install par défaut ne met pas en place l'aide VBA, c'est pour celà qu'il faut le faire en mode Custom... Ceci dit quand tu fais F1 depuis VBE, il devrait te proposer d'installer l'aide en demandant le CD...

En tout cas l'aide VBA est primordiale pour progresser, donc il faut que tu arrives à l'installer.

Re Bon Appétit
@+Thierry
 
M

Munchkin

Guest
j'utilise la deuxième, donc je dois rester sur le premier code

c'est la méthode OLEOObject qui échoue à chaque fois

voici un exemple de ce qui se passe et apparement le problèma viens de ce que les données ne sont sur la meme page

dans cette exemple j'ai montrer les deux cas
celui de la feuil 1 marche nickel mais celui de la page 2 me donne l'erreur


Merci Thierry
Munchkin
 
M

Munchkin

Guest
Oui vous avez raison a propos de l'installation de VBA, mais le pc la où je bosse ne me permet pas de la faire et à chaque fois il bloque à mi chemin

meme l'assistant des lanques pour word je n'arrive pas l'installer.

tant pis

Pas de chance
ici on mange à 13h, a+
Munchkin
 
@

@+Thierry

Guest
Re Munchkin

Vite fait avant d'aller manger un bout...

Sub TestingForMunchkin()
Dim Label As String

For J = 1 To 4
Label = "Label" & J

With Sheets("Sheet1").OLEObjects(Label)
.Object.Caption = "I'm the Label " & J
.Left = 15
.Visible = True
End With
Next J

End Sub

NB j'ai un doute sur ces lignes aussi :
Sheets(PLANNING).Activate
 => PLANNING est une Variable ?
Label = "Label" & Machine1_Machine2 & (j - (Premier_Ligne_Saisie_Edition - 1))
 => Machine1 & (J- toto etc - 1) (ouh la la !!) ça retourne bien numéro de Label existant ???
Sheets(SIMULATEUR).
 => SIMULATEUR est une Variable ?

Bon allez zou miam miam
@+Thierry
 
M

Munchkin

Guest
Oui vous avez raison a propos de l'installation de VBA, mais le pc la où je bosse ne me permet pas de la faire et à chaque fois il bloque à mi chemin

meme l'assistant des lanques pour word je n'arrive pas l'installer.

tant pis

Pas de chance
ici on mange à 13h, a+
Munchkin
 
@

@+Thierry

Guest
Heuh oui MunchKin je sais que tu mange à 13h !! mais je ne comprends pas pourquoi tu repostes la même réponse à 13:05 et à 14:09 !


Pour l'aide, as tu les droits administrateurs de la machine ? (voir avec ton Adminstrateur Réseau)


As-tu essayé aussi la Sub TestingForMunchkin ?


Bon aprèm
@+Thierry
 
M

Munchkin

Guest
Yum yum, tomates farcies, c'étaient bien

Donc là ca marche merci.

Pour répondre à votre question SIMULATEUR et PLANNING c'est les noms des pages que j'avais déclarer comme constatntes globales.

pour la formule : Label = "Label" & Machine1_Machine2 & (j - (Premier_Ligne_Saisie_Edition - 1))

c'est la meme chose. Le simulateur contient beaucoup de variable. Pour éviter que, si les utilisateurs souhaites ajouter ou changer la place d'une, l'intervention ne soit pas lente. Donc en chageant les numéreos des lignes et des colonnes dans le modules qui contient les constantes global suffit pour assurer une bonne exécution.


et ca : j - (Premier_Ligne_Saisie_Edition - 1)

car J débute à la valeur 13 qui est la meme valeur de Premier_Ligne_Saisie_Edition, Donc pour selectionner la premiere label c'est 13 - 13 +1

Voilà, Merci beaucoup
Et à bientot avec un nouveau problème
Munchkin
 
M

Munchkin

Guest
Le problème c'est que c'est pc pourri, donc après avoir poster la réponse je suis parti directement. Quand je revenu il me mettait impossible d'fficher la page et ca à suffit de rafraichir la page pour poster la réponse une deuxième fois :)

Désolé mmmm Des-solés (plusieur désolé :)))))))))) )
Munchkin
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz