Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 22h06   #1
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 236
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 236
Points : 36
Points : 36
Par défaut Simple next for fonctionne pas

Bonsoir,

J'ai ce code

Code :
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
Dim i As Integer
Dim z As Integer
For z = 4 To 6
For i = 1 To 3
Range("A1").Offset(0, z) = Me.Controls("textbox" & i)
Next i
Next z
End Sub
Pourquoi il ne fonctionne pas ?

Pour l'instant il me renvoie seulement la valeur de textbox3 vers A4, A5 et A6. (ex. Si j'entre X dans le textbox3 alors A4, A5 et A6 = X)


Or, je voudrais qu'il me renvoie textbox1, textbox2 et textbox3 vers, respectivement, A4,A5,A6.

Merci
8e8eClo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 22h20   #2
Membre Expert
 
Homme
Inscription : décembre 2011
Messages : 566
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 566
Points : 1 081
Points : 1 081
Bonsoir,

C'est normal, il s'agit de 2 boucles imbriquées.

Code :
1
2
3
4
5
6
 
For z = 4 To 6
     For i = 1 To 3
          Range("A1").Offset(0, z) = Me.Controls("textbox" & i)
     Next i
Next z
Pour avoir les infos en A4,A5,A6 :

Essaye:
Code :
1
2
3
4
    Dim i As Integer
For i = 1 To 3
    Range("A1").Offset(2 + i) = Me.Controls("textbox" & i)
Next i
BlueMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 22h21   #3
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Le code fait exactement ce qui est écrit, à savoir écrire 3 choses différentes dans la même cellule . Du coup, c'est la dernière valeur qui reste.
Pour être plus claire, dans la boucle suivante, on écrit successivement la valeur des 3 textbox dans la même cellule Range("A1").Offset(0, z) :
Code :
1
2
3
For i = 1 To 3
Range("A1").Offset(0, z) = Me.Controls("textbox" & i)
Next i
Pour faire ce que tu veux, il faut une seule boucle :
Code :
1
2
3
4
5
6
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 3
   Range("A1").Offset(0, i + 2) = Me.Controls("textbox" & i)
Next i
End Sub
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/01/2012, 12h20   #4
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 236
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 236
Points : 36
Points : 36
Je voulais éviter les codes proposés justement.

Je ne peux pas utiliser "z" pour définir le numéro de mes textbox et "i" pour définir le numéro des cellules ?

Je suis obligé de passer par un formule avec "+"/"-" ?

Merci
8e8eClo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 12h35   #5
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Bonjour tout le monde,

Citation:
Envoyé par 8e8eClo Voir le message
Je voulais éviter les codes proposés justement.

Je ne peux pas utiliser "z" pour définir le numéro de mes textbox et "i" pour définir le numéro des cellules ?
Même si je n'en vois pas l'intérêt... une solution :
Code :
1
2
3
4
5
6
7
8
9
10
Private Sub CommandButton1_Click()
Dim i As Integer
Dim z As Integer
 
i = 0
For z = 4 To 6
    i = i + 1
    Range("A1").Offset(0, z) = Me.Controls("textbox" & i)
Next z
End Sub
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h33.


 
 
 
 
Partenaires

Hébergement Web