OVH Cloud OVH Cloud

Tableaux

5 réponses
Avatar
imej-clavier
Bonjour,
J'ai dans un premier temps affecté un nombre de personnes à la variable
NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et prénoms de
NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à partir du deuxième passage
dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-michel
Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To NbrePersonnes) As Variant
Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de personnes ? »)
For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un nom »)
Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un prenom »)
Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i

5 réponses

Avatar
LeSteph
Bonjour,
Tu boucle j dans i mais un nom i n'a pas un nombre j de prénoms
essaie for i to nbpersonnes..
comme tu le fais
puis
offset(i,1) pour le nom
et offset (i,2) pour le prénom

LeSteph
"imej-clavier" a écrit dans le message de
news:%
Bonjour,
J'ai dans un premier temps affecté un nombre de personnes à la variable
NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et prénoms de
NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à partir du deuxième
passage

dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-michel
Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To NbrePersonnes) As Variant
Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de personnes ? »)
For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un nom »)
Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un prenom »)
Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i





Avatar
J-Dan
bonjour Le Steph et imej-clavier,

il y a aussi un truc qui coince, c'est que tu
dimensionnes ton tableau avec NbrePersonnes avant le
InputBox, tu n'auras donc jamais la bonne dimension.
Essaie ceci :

Dim NbrePersonnes As Long
Dim i As Long

NbrePersonnes = InputBox(" Combien voulez-vous saisir de
personnes ? ")
ReDim TabNomPrenom(1 To NbrePersonnes, 1) As Variant
MsgBox UBound(TabNomPrenom, 1)
For i = 1 To NbrePersonnes

TabNomPrenom(i, 0) = InputBox(" Veuillez saisir un nom ")
Worksheets(1).Cells(i, 1).Value = TabNomPrenom(i, 0)

TabNomPrenom(i, 1) = InputBox(" Veuillez saisir un
prenom ")
Worksheets(1).Cells(i, 2).Value = TabNomPrenom(i, 1)


Next i

J-Dan


-----Message d'origine-----
Bonjour,
Tu boucle j dans i mais un nom i n'a pas un nombre j
de prénoms

essaie for i to nbpersonnes..
comme tu le fais
puis
offset(i,1) pour le nom
et offset (i,2) pour le prénom

LeSteph
"imej-clavier" a écrit dans le
message de

news:%
Bonjour,
J'ai dans un premier temps affecté un nombre de
personnes à la variable


NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et
prénoms de


NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à
partir du deuxième


passage
dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-michel
Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To
NbrePersonnes) As Variant


Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de
personnes ? »)


For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
nom »)


Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
prenom »)


Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i






.




Avatar
LeSteph
Bonjour JDan
Oui, aussi!
Et même, je ne sais pas s'il demeure indispensable de faire des tableaux en
variant quand
on les formalise non plus virtuellement mais phisiquement dans les cellules
d'une feuille.
LeSteph

"J-Dan" a écrit dans le message de
news:ab0101c4884f$271a1070$
bonjour Le Steph et imej-clavier,

il y a aussi un truc qui coince, c'est que tu
dimensionnes ton tableau avec NbrePersonnes avant le
InputBox, tu n'auras donc jamais la bonne dimension.
Essaie ceci :

Dim NbrePersonnes As Long
Dim i As Long

NbrePersonnes = InputBox(" Combien voulez-vous saisir de
personnes ? ")
ReDim TabNomPrenom(1 To NbrePersonnes, 1) As Variant
MsgBox UBound(TabNomPrenom, 1)
For i = 1 To NbrePersonnes

TabNomPrenom(i, 0) = InputBox(" Veuillez saisir un nom ")
Worksheets(1).Cells(i, 1).Value = TabNomPrenom(i, 0)

TabNomPrenom(i, 1) = InputBox(" Veuillez saisir un
prenom ")
Worksheets(1).Cells(i, 2).Value = TabNomPrenom(i, 1)


Next i

J-Dan


-----Message d'origine-----
Bonjour,
Tu boucle j dans i mais un nom i n'a pas un nombre j
de prénoms

essaie for i to nbpersonnes..
comme tu le fais
puis
offset(i,1) pour le nom
et offset (i,2) pour le prénom

LeSteph
"imej-clavier" a écrit dans le
message de

news:%
Bonjour,
J'ai dans un premier temps affecté un nombre de
personnes à la variable


NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et
prénoms de


NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à
partir du deuxième


passage
dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-michel
Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To
NbrePersonnes) As Variant


Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de
personnes ? »)


For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
nom »)


Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
prenom »)


Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i






.




Avatar
J-Dan
re Le Steph,

il faut supposer qu'imej-clavier en a l'utilité, va
savoir !

MsgBox UBound(TabNomPrenom, 1) est superflu, c'est un
residu de (bla bla bla).

J-Dan

-----Message d'origine-----
Bonjour JDan
Oui, aussi!
Et même, je ne sais pas s'il demeure indispensable de
faire des tableaux en

variant quand
on les formalise non plus virtuellement mais
phisiquement dans les cellules

d'une feuille.
LeSteph

"J-Dan" a écrit
dans le message de

news:ab0101c4884f$271a1070$
bonjour Le Steph et imej-clavier,

il y a aussi un truc qui coince, c'est que tu
dimensionnes ton tableau avec NbrePersonnes avant le
InputBox, tu n'auras donc jamais la bonne dimension.
Essaie ceci :

Dim NbrePersonnes As Long
Dim i As Long

NbrePersonnes = InputBox(" Combien voulez-vous saisir de
personnes ? ")
ReDim TabNomPrenom(1 To NbrePersonnes, 1) As Variant
MsgBox UBound(TabNomPrenom, 1)
For i = 1 To NbrePersonnes

TabNomPrenom(i, 0) = InputBox(" Veuillez saisir un
nom ")

Worksheets(1).Cells(i, 1).Value = TabNomPrenom(i, 0)

TabNomPrenom(i, 1) = InputBox(" Veuillez saisir un
prenom ")
Worksheets(1).Cells(i, 2).Value = TabNomPrenom(i, 1)


Next i

J-Dan


-----Message d'origine-----
Bonjour,
Tu boucle j dans i mais un nom i n'a pas un nombre j
de prénoms

essaie for i to nbpersonnes..
comme tu le fais
puis
offset(i,1) pour le nom
et offset (i,2) pour le prénom

LeSteph
"imej-clavier" a écrit dans le
message de

news:%
Bonjour,
J'ai dans un premier temps affecté un nombre de
personnes à la variable


NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et
prénoms de


NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à
partir du deuxième


passage
dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-
michel



Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To
NbrePersonnes) As Variant


Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de
personnes ? »)


For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
nom »)


Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un
prenom »)


Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i






.




.





Avatar
michdenis
Bonjour imej-clavier,


Essaie ceci en prenant soin d'identifier le nom de la feuille appropriée dans la procédure.
à copier dans un module standard.

'------------------------------
Sub InsérerUneListe()

Dim Rg As Range, NbPersons As Variant
Dim Prénom As String, Nom As String
Dim Col As Integer, Lig As Long

NbPersons = Application.InputBox _
("Combien voulez-vous saisir de personnes ?" _
, , , , , , 1)
If NbPersons = "Faux" Then Exit Sub

With Worksheets("Feuil1")
.Activate
Lig = .Range("A1").Row + Val(NbPersons) - 1
Col = .Range("A1").Column + 1
Set Rg = .Range("A1").Resize(Lig, Col)
End With

For a = 1 To Rg.Rows.Count
For b = 1 To Rg.Columns.Count
If b = 1 Then
Do
Prénom = InputBox("Votre Prénon")
If Prénom = "" Then
If MsgBox("Désirez-vous mettre fin à la saisie?", _
vbCritical + vbYesNo) = vbYes Then Exit Sub
End If
Loop Until Prénom <> ""
Rg(a, b) = Prénom
Else
Do
Nom = InputBox("Votre Nom")
If Nom = "" Then
If MsgBox("Désirez-vous mettre fin à la saisie?", _
vbCritical + vbYesNo) = vbYes Then Exit Sub
End If
Loop Until Nom <> ""
Rg(a, b) = Nom
End If
Next
Next
End Sub
'------------------------------


Salutations!




"imej-clavier" a écrit dans le message de news:%
Bonjour,
J'ai dans un premier temps affecté un nombre de personnes à la variable
NbrePersonnes. Je souhaiterais
ensuite mettre dans les cellules d'Excel les noms et prénoms de
NbrePersonnes dans des variables
tableaux.
Je ne comprends pas pourquoi cela ne marche pas à partir du deuxième passage
dans la boucle.
Quelqu'un peut-il m'aider ? D'avance merci, Jean-michel
Dim NbrePersonnes As Long
NbrePersonnes=1
Dim i As Long, j As Long
ReDim TabNomPrenom(1 To NbrePersonnes, 1 To NbrePersonnes) As Variant
Worksheets(1).Range(« A1 »).Select
NbrePersonnes=InputBox(« Combien voulez-vous saisir de personnes ? »)
For i = 1 To NbrePersonnes
For j = 1 To NbrePersonnes
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un nom »)
Worksheets(1).Cells(i, j).Value=TabNomPrenom(i, j)
ActiveCell.Offset(0, 1).Select
TabNomPrenom(i, j)=InputBox(« Veuillez saisir un prenom »)
Worksheets(1).Cells(i, j+1).Value=TabNomPrenom(i, j)
ActiveCell.Offset(1, -1).Select
Next j
Next i