Variable dans une boucle

cs_smarties38 Messages postés 12 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 4 décembre 2009 - 20 févr. 2007 à 11:46
cs_smarties38 Messages postés 12 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 4 décembre 2009 - 20 févr. 2007 à 13:02
bonjour,

j'ai deux petits soucis avec une macro en powerpoint, j'ouvre un fichier excel dans lequel je récupère des données. J'ai des variables nom_act et num_titre_index qui varient grâce à un chiffre (nom_act1,nom_act2..., num_titre_index1, num_titre_index2...).

Mon 1er souci : l'affectation des valeurs aux variables qui serait beaucoup plus propre si elle était réalisée par une boucle et pas manuellement mais que je n'arrive pas à faire.

Mon 2nd souci : mes variables nom_act et num_titre_index que je n'arrive pas à concaténer au compteur de ma boucle pour récupérer la valeur de mes variables nom_act1, nom_act2... et num_titre_index1, num_titre_index2...

ci dessous mon code

Dim nom_act(15) As String
Dim num_titre_index(15) As Integer
Dim i As Integer

'on lit les cellules et on les stocke dans les variables nom_act :
nom_act1 = ""
nom_act1 = Sheets("Feuil1").Range("A2").Text
nom_act2 = ""
nom_act2 = Sheets("Feuil1").Range("A3").Text
nom_act3 = ""
nom_act3 = Sheets("Feuil1").Range("A4").Text
nom_act4 = ""
nom_act4 = Sheets("Feuil1").Range("A5").Text
nom_act5 = ""
nom_act5 = Sheets("Feuil1").Range("A6").Text
nom_act6 = ""
nom_act6 = Sheets("Feuil1").Range("A7").Text
nom_act7 = ""
nom_act7 = Sheets("Feuil1").Range("A8").Text
nom_act8 = ""
nom_act8 = Sheets("Feuil1").Range("A9").Text
nom_act9 = ""
nom_act9 = Sheets("Feuil1").Range("A10").Text
nom_act10 = ""
nom_act10 = Sheets("Feuil1").Range("A11").Text
nom_act11 = ""
nom_act11 = Sheets("Feuil1").Range("A12").Text
nom_act12 = ""
nom_act12 = Sheets("Feuil1").Range("A13").Text
nom_act13 = ""
nom_act13 = Sheets("Feuil1").Range("A13").Text
nom_act14 = ""
nom_act14 = Sheets("Feuil1").Range("A13").Text
nom_act15 = ""
nom_act15 = Sheets("Feuil1").Range("A13").Text

'on lit les cellules et on les stocke dans les variables num_titre_index :
num_titre_index1 = 0
num_titre_index1 = 1
num_titre_index2 = 0
num_titre_index2 = (Sheets("Feuil1").Range("c3").Text) - 1
num_titre_index3 = 0
num_titre_index3 = (Sheets("Feuil1").Range("c4").Text) - 1
num_titre_index4 = 0
num_titre_index4 = (Sheets("Feuil1").Range("c5").Text) - 1
num_titre_index5 = 0
num_titre_index5 = (Sheets("Feuil1").Range("c6").Text) - 1
num_titre_index6 = 0
num_titre_index6 = (Sheets("Feuil1").Range("c7").Text) - 1
num_titre_index7 = 0
num_titre_index7 = (Sheets("Feuil1").Range("c8").Text) - 1
num_titre_index8 = 0
num_titre_index8 = (Sheets("Feuil1").Range("c9").Text) - 1
num_titre_index9 = 0
num_titre_index9 = (Sheets("Feuil1").Range("c10").Text) - 1
num_titre_index10 = 0
num_titre_index10 = (Sheets("Feuil1").Range("c11").Text) - 1
num_titre_index11 = 0
num_titre_index11 = (Sheets("Feuil1").Range("c12").Text) - 1
num_titre_index12 = 0
num_titre_index12 = (Sheets("Feuil1").Range("c13").Text) - 1
num_titre_index13 = 0
num_titre_index13 = (Sheets("Feuil1").Range("c14").Text) - 1
num_titre_index14 = 0
num_titre_index14 = (Sheets("Feuil1").Range("c15").Text) - 1
num_titre_index15 = 0
num_titre_index15 = (Sheets("Feuil1").Range("c16").Text) - 1

'boucle qui pose problème:
For i = 1 To 15
WithoApplication.ActivePresentation.Slides(num_titre_index(i)).Shapes.Placeholders(1).TextFrame.TextRange
            .Text = ""
            .Text = nom_act(i)
            With .Font
                .Name = "Arial"
                .Size = 12
                .Bold = msoTrue
                .Italic = msoFalse
                .Underline = msoFalse
                .Shadow = msoFalse
                .Emboss = msoFalse
                .BaselineOffset = 0
                .AutoRotateNumbers = msoFalse
                .Color.SchemeColor = ppTitle
            End With
        End With
    End If
Next i

est-ce que quel'qu'un peut m'aider svp ?

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
20 févr. 2007 à 12:40
Bonjour


A quoi ça sert de faire

nom_act15 = ""

nom_act15 = Sheets("Feuil1").Range("A13").Text

juster la dernière ligne devrais suffire.


Y a une erreur ?

nom_act12 = ""

nom_act12 = Sheets("Feuil1").Range("A13").Text

nom_act13 = ""

nom_act13 = Sheets("Feuil1").Range("A13").Text

nom_act14 = ""

nom_act14 = Sheets("Feuil1").Range("A13").Text

nom_act15 = ""

nom_act15 = Sheets("Feuil1").Range("A13").Text


Je te propose pour l'assignation :

dim i as long

for i=lbound(nom_act) to ubound(nom_act)


    nom_act(i)=Sheets("Feuil1").Range("A2").Offset(0,i).Text


next

for i=lbound(num_titre_index) to ubound(num_titre_index)


    num_titre_index(i)=(Sheets("Feuil1").Range("c.").Offset(0,i).Text) - 1


next


Cela sous entend que tes tableau commencent à 0 et pas à 1


Et ta boucle devrait mieu aller.

Il est plus facile de batiser quelqu'un que de la convertir.(surtout en programmation)
VB (6, A excel, .NET), C++, C#.Net
Mon site
0
cs_smarties38 Messages postés 12 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 4 décembre 2009
20 févr. 2007 à 13:02
    merci beaucoup je vais tester ça
0
Rejoignez-nous