VBA Excel copier dans une cellule

eastpeople Messages postés 105 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 novembre 2008 - 11 nov. 2008 à 13:44
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 13 nov. 2008 à 14:55
Bonjour, je vous écris car je n'arrive pas à rectifier mon code.
Mon probleme est:
J'ai un userform nommé Produit, dans ce user form je rentre dans un textbox un nom de produit qui se range dans la cellule A2 de la feuille ProduitS. Et j'aimerai que quand il y a quelque chose dans la cellule A2 de la feuille ProduitS dans la cellule H1 de la feuille Entrepot il y ai marqué "Stock" suivi du contenu de la cellule A2 de la feuille ProduitS. Sur cela j'ai fait une marcro enregistrée que j'ai intégrer dans le code du bouton Suivant du user form Produit. Cela marche mais le problème c'est que si j'ajoute un autre produit dans le userform Produit, la valeur se met dans A3 de la feuille ProduitS (jusqu'a là tout va bien) mais dans la feuille Entrepot, il colle dans la cellule I1 la même chose que la cellule H1 alors que je voudrais qu'il y ai marqué "Stock" et le contenu de A3 de la feuille ProduitS. Voila mon code

Sub Stocks()
    Sheets("Produits").Select
    Sheets("Entrepots").Select
    Columns("H:H").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    ActiveCell.FormulaR1C1 = "=""Stocks ""&(Produits!R[1]C[-7])"
    Columns("H:H").Select
    Range("H2").Activate
    Columns("H:H").EntireColumn.AutoFit
    Range("G4").Select
End Sub
Je vois bien que mon code n'est pas correct, mais je n'arrive pas à en trouver un autre.
J'espère que j'ai bien expliqué mon problème.
Merci de votre aide.

8 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
11 nov. 2008 à 16:29
Bonjour,

Sub Stocks()
    ' Récupère le contenu de la dernière cellule de la colonne A
    contenuA2 = Sheets("Produits").Range("A65536").End(xlUp).Value
   
    If contenuA2 <> "" Then 'Test si le contenu est vide ou pas
            ' si pas vide alors
        With Sheets("Entrepots")
            nblig = .Range("H65536").End(xlUp).Row + 1
            .Range("H" & nblig).Value = "Stock : " & contenuA2
            .Columns("H:H").EntireColumn.AutoFit
        End With
    End If
End Sub

Par contre l'histoire ne dit pas si il est important que le numéro de ligne de la colonne A de produits, doit être identique à H dans Entrepot... Ici, on rempli au fur et mesure, dans la dernière cellule vide.

Amicalement,
Us.
0
kartouche04 Messages postés 10 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 15 novembre 2008
11 nov. 2008 à 18:40
Bonsoir, le code que vous m'avez donné marche pour copier les données dans les cellule H2 à H4 par ex en colonne et j'aurais voulu les copier dans les cellules de H1 à K1 par ex en ligne. Cela est-il possible?
Merci d'avance
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
11 nov. 2008 à 19:06
Est-ce encore d'actualité ?

Amicalement,
Us.
0
kartouche04 Messages postés 10 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 15 novembre 2008
11 nov. 2008 à 19:50
Oui cela est toujours d'actualité, je n'ai pas réussi à régler le problème!!
Merci de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
12 nov. 2008 à 08:49
Bonjour

Une fois les cellules copiées verticalement, les sélectionner et faire un collage spécial transposé.

Pour obtenir un code de cette manip cliquer sur "enregistrer une macro", executer la manip, arrêter la macro. il suffit alors de l'adapter.

Bonne journée
0
kartouche04 Messages postés 10 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 15 novembre 2008
12 nov. 2008 à 20:45
Merci beaucoup. Cela est-il possible que je modifie le code pour intégrer un prefixe dans les cellules? Je voudrais que quand il colle les cellules il rajoute "Stock" devant.
Merci de votre réponse.
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
13 nov. 2008 à 08:16
Bonjour

En utilisant les code de us_30 celà devrait être.

La ligne:  ".Range("H" & nblig).Value = "Stock : " & contenuA2"  concatène la constante "Stock : " à la valeur "contenuA2".


cette constante étant ajoutée à chaque ligne.
Bonne journée
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
13 nov. 2008 à 14:55
Bonjour à tous,

Pour :
"j'aurais voulu les copier dans les cellules de H1 à K1 par ex en ligne."

Exemple de code :

Sub Stocks()
    ' Récupère le contenu de la dernière cellule de la colonne A
    contenuA2 = Sheets("Produits").Range("A65536").End(xlUp).Value
    If contenuA2 <> "" Then 'Test si le contenu est vide ou pas
            ' si pas vide alors
        With Sheets("Entrepots")
            nbcol = .Range("IV1").End(xlToLeft).Column
            If nbcol > 7 Then
                .Range("IV1").End(xlToLeft).Offset(0, 1).Value = "Stock : " & contenuA2
            Else
                .Range("H1").Value = "Stock : " & contenuA2
            End If
        End With
    End If
End Sub

Amicalement,
Us.
0
Rejoignez-nous