Ouvrir feuille à partir d'une textbox
Résolu
Mister-t
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Ouvrir feuille à partir d'une textbox
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Ouvrir fichier .dat - Guide
4 réponses
bonjour,
Tu veux faire référence à quoi avec
h.Value =
x.Value =
y.Value =
z.Value
et si possible met ta macro en entier
A+
Tu veux faire référence à quoi avec
h.Value =
x.Value =
y.Value =
z.Value
et si possible met ta macro en entier
A+
ta macro n'est pas entière, met la à partir de Sub... jusque End Sub
parece que je ne vois pas où tu déclare tes h,x etc..
Quel est le nom du textbox
parece que je ne vois pas où tu déclare tes h,x etc..
Quel est le nom du textbox
Pour le nom de la textbox c'est l'utilisateur qui va l'ecrire c'est pour ça que je ne mets pas une feuille de type wbk2.sheets("nom de la feuille")
voila la macro
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Set wbk1 = ThisWorkbook
wbk1.UserForm1.TextBox2.Value = h.Value
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
x.Value = wbk1.Sheets("h.value").Range("K6").Value
y.Value = 4
z.Value = x.Value + y.Value
wbk2.Sheets("h.value").Cells(z.value, 1) = wbk1.Sheets("PV").Cells(6, 11)
wbk2.Sheets("h.value").Cells(z.value, 1).Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
voila la macro
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Set wbk1 = ThisWorkbook
wbk1.UserForm1.TextBox2.Value = h.Value
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
x.Value = wbk1.Sheets("h.value").Range("K6").Value
y.Value = 4
z.Value = x.Value + y.Value
wbk2.Sheets("h.value").Cells(z.value, 1) = wbk1.Sheets("PV").Cells(6, 11)
wbk2.Sheets("h.value").Cells(z.value, 1).Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
Bon, il n'y a aucune déclaration concernant tes variables..
mais pour t'aiguillé il faut d'abors savoir le NOM DE LA TEXTBOX (pas ce qu'il y aurra dedant)
voir dans Propriétés >> Name = ? : C'est avec ce nom que tu peu travailler
Pour le nom de la textbox c'est l'utilisateur qui va l'ecrire Ca ce serra le nom du classeur ?
mais pour t'aiguillé il faut d'abors savoir le NOM DE LA TEXTBOX (pas ce qu'il y aurra dedant)
voir dans Propriétés >> Name = ? : C'est avec ce nom que tu peu travailler
Pour le nom de la textbox c'est l'utilisateur qui va l'ecrire Ca ce serra le nom du classeur ?
commence par déclarer tes variables
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
dim H as string
Dim X as integer, Y as integer, Z as integer
Pour avoir le nom de la feuille à employer qui se trouve dans ton textbox..
H=textBox1.text
Mais tu devras faire une détection d'erreur , le plus simple serrait de remplir un combobox
avec tout les noms de fichier. Pour ouvrir un fichier du DD il faut avoir le chemin + le nom (exact) + l'extention (.xls)
Ex C:\MonRepertoir\LeFichier.xls
Ce serrait plus simple si tu montrais ton classeur..
Tu le copie sur
https://www.cjoint.com/
et tu donne le lien dans le poste suivant.
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
dim H as string
Dim X as integer, Y as integer, Z as integer
Pour avoir le nom de la feuille à employer qui se trouve dans ton textbox..
H=textBox1.text
Mais tu devras faire une détection d'erreur , le plus simple serrait de remplir un combobox
avec tout les noms de fichier. Pour ouvrir un fichier du DD il faut avoir le chemin + le nom (exact) + l'extention (.xls)
Ex C:\MonRepertoir\LeFichier.xls
Ce serrait plus simple si tu montrais ton classeur..
Tu le copie sur
https://www.cjoint.com/
et tu donne le lien dans le poste suivant.
salut a toi et merci pour ce debut de reponse
cependant je ne peux pas faire de combobox et lister toutes les feuilles car celle-ci seront crées l'année prochaine et je ne connais pas le nom quelles porteront. De ce fait la combobox est inutile a mon sens.
Le but recherché est que lorsque la feuille est crée par l'utilisateur, la macro puisse fonctionner correctement avec n'importe quel nom de feuille. Toutefois je pense que les feuilles s'appelleront "2009","2010", etc...
pour le nom de la textbox c'est tous simplement textbox2
Pour la publication des classeurs, je ne peux pas puisque c'est des documents appartenant a l'entreprise d'ou interdiction
Debut de modif de la macro: erreur 9 indice en dehors de la plage
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim h As String
Dim x, y, z As Integer
Set wbk1 = ThisWorkbook
h = UserForm1.TextBox2.Text
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
x = wbk1.Sheets(h).Range("K6").Value
y = 4
z = x + y
wbk2.Sheets(h).Cells(z, 1) = wbk1.Sheets("PV").Cells(6, 11)
wbk2.Sheets(h).Cells(z, 1).Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
cependant je ne peux pas faire de combobox et lister toutes les feuilles car celle-ci seront crées l'année prochaine et je ne connais pas le nom quelles porteront. De ce fait la combobox est inutile a mon sens.
Le but recherché est que lorsque la feuille est crée par l'utilisateur, la macro puisse fonctionner correctement avec n'importe quel nom de feuille. Toutefois je pense que les feuilles s'appelleront "2009","2010", etc...
pour le nom de la textbox c'est tous simplement textbox2
Pour la publication des classeurs, je ne peux pas puisque c'est des documents appartenant a l'entreprise d'ou interdiction
Debut de modif de la macro: erreur 9 indice en dehors de la plage
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim h As String
Dim x, y, z As Integer
Set wbk1 = ThisWorkbook
h = UserForm1.TextBox2.Text
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
x = wbk1.Sheets(h).Range("K6").Value
y = 4
z = x + y
wbk2.Sheets(h).Cells(z, 1) = wbk1.Sheets("PV").Cells(6, 11)
wbk2.Sheets(h).Cells(z, 1).Activate
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
C'est mon dernier post car mon problème est résolu
Merci a toi Lermite222 pour m'avoir mis sur la voie.
J'ai juste fais quelques manip sur la macro et hop le tour est joué
Pour ceux que cela interesse je laisse ma macro
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim h As String
Dim x, y, z As Integer
Set wbk1 = ThisWorkbook
h = UserForm1.TextBox2.Text
x = Cells(6, 11).Value
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
y = 4
z = x + y
wbk2.Sheets(h).Cells(z, 1) = wbk1.Sheets("PV").Cells(6, 11)
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
Merci a toi Lermite222 pour m'avoir mis sur la voie.
J'ai juste fais quelques manip sur la macro et hop le tour est joué
Pour ceux que cela interesse je laisse ma macro
Sub macro1()
Dim wbk1 As Workbook
Dim wbk2 As Workbook
Dim h As String
Dim x, y, z As Integer
Set wbk1 = ThisWorkbook
h = UserForm1.TextBox2.Text
x = Cells(6, 11).Value
Set wbk2 = Workbooks.Open(FileName:="dimensi.1998 a 2008")
y = 4
z = x + y
wbk2.Sheets(h).Cells(z, 1) = wbk1.Sheets("PV").Cells(6, 11)
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Times New Roman"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
End With
Selection.Font.ColorIndex = 0
End Sub
h.value est pour moi la valeur de la textbox pour laquel l'utilisateur va ecrire dans le but de copier mes cellules sur la feuille portant le nom qu'il a ecrit
x.value est la valeur d'une cellule que l'utilisateur va taper (ceci nécessaire pour definir la ligne de la copie)
y.value est une valeur qui indique la copie des cellules sur la première ligne
z.value est la somme de la valeur de x et y pour designer la ligne de copie des cellules
pour resumer
h.value est le nom de la feuille
x.value est une ligne de départ pour copier coller les cellules
y.value correspond a une ligne pour copier coller les cellules
z.value est le chiffre issue de l'addition de la valeur de x et y
Ma macro est entière je n'ai que ça