Feuille variable grâce à une cellule, dans macro
Résolu/Fermé
Alexver
Messages postés
44
Date d'inscription
lundi 1 juillet 2013
Statut
Membre
Dernière intervention
21 août 2013
-
Modifié par Alexver le 31/07/2013 à 12:14
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013 - 1 août 2013 à 11:25
Alexver Messages postés 44 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 21 août 2013 - 1 août 2013 à 11:25
A voir également:
- Feuille variable grâce à une cellule, dans macro
- Aller à la ligne dans une cellule excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Verrouiller cellule excel sans verrouiller la feuille - Guide
- Macro word - Guide
- Comment supprimer une feuille sur word - Guide
2 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
31 juil. 2013 à 13:06
31 juil. 2013 à 13:06
Bonjour,
voici la résolution à ton problème :
dim a as variant
a= Sheets("ajout_produit_composant").range("I18")
Sheets(a).select
==> a prendra la valeur de la cellule I18 de ta feuille
sheets(a).select ==> sélectionnes la feuille nommée dans la variable a définie par ta feuille cellule I18
voici la résolution à ton problème :
dim a as variant
a= Sheets("ajout_produit_composant").range("I18")
Sheets(a).select
==> a prendra la valeur de la cellule I18 de ta feuille
sheets(a).select ==> sélectionnes la feuille nommée dans la variable a définie par ta feuille cellule I18
Alexver
Messages postés
44
Date d'inscription
lundi 1 juillet 2013
Statut
Membre
Dernière intervention
21 août 2013
1 août 2013 à 10:59
1 août 2013 à 10:59
Merci :).
Il faut que je le mette ou? car si je le met au début sa ne marche pas et en plein milieu non plus sa bug.
Il faut que je le mette ou? car si je le met au début sa ne marche pas et en plein milieu non plus sa bug.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
1 août 2013 à 11:03
1 août 2013 à 11:03
mets moi tout toncode vba ici ou bien ton fichier ou une copie de ton fichier dan cjoint.com
Je te modifierais le code en fonction
Je te modifierais le code en fonction
Alexver
Messages postés
44
Date d'inscription
lundi 1 juillet 2013
Statut
Membre
Dernière intervention
21 août 2013
1 août 2013 à 11:07
1 août 2013 à 11:07
Sub ajouter_un_produit()
Dim MaPlage As Range, Cel As Range
Set MaPlage = Sheets("ajout_produit_composant").Range("D3:D15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("G3:G15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("I12,I13")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(1, 0)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(0, 13)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Sheets("ajout_produit_composant").Range("D6,D7,D8,D10,D11,D12,D14,D15,G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16,I12,I13").ClearContents
Application.CutCopyMode = False
End Sub
Voila le code VBA, je sais il est un peu lourd ^^ j'ai mi en gras la partie que j'aimerais variable.
Dim MaPlage As Range, Cel As Range
Set MaPlage = Sheets("ajout_produit_composant").Range("D3:D15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("G3:G15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("I12,I13")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(1, 0)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16").Copy
Set Derligne = Sheets("tableau").Range("$A$65536").End(xlUp).Offset(0, 13)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Sheets("ajout_produit_composant").Range("D6,D7,D8,D10,D11,D12,D14,D15,G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16,I12,I13").ClearContents
Application.CutCopyMode = False
End Sub
Voila le code VBA, je sais il est un peu lourd ^^ j'ai mi en gras la partie que j'aimerais variable.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
1 août 2013 à 11:19
1 août 2013 à 11:19
coucou,
essaie ca :
Sub ajouter_un_produit()
Dim MaPlage As Range, Cel As Range
dim a as variant
Set MaPlage = Sheets("ajout_produit_composant").Range("D3:D15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("G3:G15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("I12,I13")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
a= Sheets("ajout_produit_composant").range("I18") 'la variable a = la valeur de la cellule I18 de la feuille ajout produit composant
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15").Copy
Set Derligne = Sheets(a).Range("$A$65536").End(xlUp).Offset(1, 0)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16").Copy
Set Derligne = Sheets(a).Range("$A$65536").End(xlUp).Offset(0, 13)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Sheets("ajout_produit_composant").Range("D6,D7,D8,D10,D11,D12,D14,D15,G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16,I12,I13").ClearContents
Application.CutCopyMode = False
End Sub
essaie ca :
Sub ajouter_un_produit()
Dim MaPlage As Range, Cel As Range
dim a as variant
Set MaPlage = Sheets("ajout_produit_composant").Range("D3:D15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("G3:G15")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
Set MaPlage = Sheets("ajout_produit_composant").Range("I12,I13")
For Each Cel In MaPlage 'pour toutes les cellules de la plage
If Cel.Value = "" Then 'si elle est vide alors
'message à l'utilisateur
MsgBox "La cellule : " & Cel.Address & " n'est pas remplie."
'sortie de la procédure
Exit Sub
End If
Next
a= Sheets("ajout_produit_composant").range("I18") 'la variable a = la valeur de la cellule I18 de la feuille ajout produit composant
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15").Copy
Set Derligne = Sheets(a).Range("$A$65536").End(xlUp).Offset(1, 0)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Application.ScreenUpdating = False
Sheets("ajout_produit_composant").Range("G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16").Copy
Set Derligne = Sheets(a).Range("$A$65536").End(xlUp).Offset(0, 13)
Derligne.PasteSpecial Paste:=xlAll, Operation:=xlNone, Transpose:=True
Sheets("ajout_produit_composant").Range("D6,D7,D8,D10,D11,D12,D14,D15,G3,G4,G5,G6,G7,G8,G9,G10,G11,G12,G13,G14,G15,G16,I12,I13").ClearContents
Application.CutCopyMode = False
End Sub
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
1 août 2013 à 11:20
1 août 2013 à 11:20
j'ai remplacé tableau par la variable a et j'ai donné la valeur à la variable a
Alexver
Messages postés
44
Date d'inscription
lundi 1 juillet 2013
Statut
Membre
Dernière intervention
21 août 2013
1 août 2013 à 11:25
1 août 2013 à 11:25
Sa fonctionne :). Parfait, merci beaucoup mélanie. Cela me sera très utile ;).