Adresse de cellule dans une variable

Bonjour,

Alors voilà j'aimerai définir une variable comme étant l'adresse d'une cellule qui serait elle même définie par une autre variable, pour ensuite pouvoir coller une plage de donnée à partir de cette cellule.

Je met mon code pour que ce soit plus clair :

Sub PlanningJM()

ligneactiveplanning = 6
Réfpièce = Worksheets("Planning").Cells(ligneactiveplanning, 1)
Colonneactivefinale = 1
Set Celluleactivefinale = Worksheets("Planning JM").Columns(Colonneactivefinale).Rows(1)

Colonnevaleurs = Colonneactivefinale + 3

While (Réfpièce <> " " And ligneactive < 300)

    For x = 4 To 8

        Sheets("Planning").Range("A2", "C300").Copy Sheets("Planning Jean-Michel").Range(Celluleactivefinale)

    Next

Wend

End Sub

J'aimerai en fait que la variable Celluleactivefinale prenne par exemple la référence " A1 " et que ensuite je puisse copier sur ma feuille "Planning JM" la plage de données A2 à C300 de la feuille Planning, en commençant à Celluleactivefinale .

Je ne sais pas trop si c'est clair...

J'ai fais plusieurs recherches sur différents forum mais je ne trouve aucune réponse à mon problème....

Je viens donc faire appelle à votre aide !

Merci d'avance,

Victorien

Bonjour,

Ce serait mieux de mettre un fichier car on ne comprend rien là

Une fois on parle de Planning JM, plus bas JM devient Jean Michel

Puis cette instruction -> Worksheets("Planning JM").Columns(Colonneactivefinale).Rows(1), cela ne veut rien dire. Tu veux faire quoi ?

Ligneactive ?? cela vient de quoi cette variable. D'une autre macro

Remplace

Sheets("Planning").Range("A2", "C300") 

par

Sheets("Planning").Range("A2:C300")

Crdlt

Bonjour Dan,

Merci de ta réponse tout d'abord, et oui je pense que c'est un peu trop nébuleux, je t'ai fais un fichier exemple que tu trouvera en pièce jointe !

Ce que je souhaite faire se trouve sur la feuille "Planning JM" : en faite je veux faire un "mini-planning" pour chaque jour à partir de mon planning général (feuille "Planning ") sur la semaine, en copiant des colonnes et en séparant ces mini-plannings.

Je te remercie de ton aide !

edit : Ligne active dans le while correspond à ligneactiveplanning (oubli)

Re

Merci de ton fichier.

En gros il te faut un planning dans la feuille JM si pour chaque jour tu n'as pas de 0 en ligne 5 de la feuille Planning.

Si oui, est-ce que l'on peut effacer le planning dans la feuille JM à chaque génération de la macro ou pas ?

Autre question est-ce que ce planning est uniquement généré pour JM ?

Crdlt

Bonjour,

C'est exactement cela ! J'aimerai que mon planning se génère pour chaque jour de la semaine (sans les week-end si possible, donc les jours où la somme ligne 5 est à 0). Et si tu remarques sur le planning déjà fait comme exemple, il y a parfois des lignes de pièces qu'il n'y a pas à livrer mais qui sont tout de même dans la liste du jour, et je voudrais juste les supprimer pour chaque jour.

Oui bien sûr on peut supprimer le planning à chaque regénération, j'allais le rajouter aujourd'hui dedans c'était juste un oubli !

Et ce planning sera généré uniquement pour JM, oui.

Je te remercie beaucoup de ton aide !

Re

Vois ton fichier en retour dans lequel j'ai déplacé les boutons vers le haut dans la feuille planning

A te relire pour tes commentaires

Si ok, lors de ta réponse clique sur le V vert à coté du bouton EDITER afin de cloturer le fil

Crdlt

Bonjour Dan,

Super c'est exactement cela ! Par contre il y a pas mal de lignes vides à chaque fois dans le planning JM, serait-il possible, de les faire supprimer automatiquement lors de la copie ?

Merci beaucoup,

Victorien

re

Dans le code et ce, juste avant DCL = DCL + 1 mets les instructions ci-dessous

For j = dlg - 1 To 5 Step -1
    With Sheets("Planning JM")
    If .Cells(j, dcl) = "" Then .Range(.Cells(j, dcl - 2), .Cells(j, dcl)).Delete Shift:=xlUp
    End With
Next

A te relire

Super, ça marche bien sur le fichier test !

Cependant quand je l'adapte à mon fichier officiel, ça me créé un décalage (je te joins deux images de mon planning et de mon Planning JM), et j'ia beau essayer de modifier des paramètres je n'arrive pas à l'enlever... :/

Est-ce que tu pourrais m'indiquer quel paramètre changer pour commencer le copiage de la ligne de pièces une ligne en dessous ?

Merci beaucoup

bug1 bug2

re

Ah ben oui, si tu mets pas le fichier original....

Essaie avec ce code

Sub planningJM()
Dim plage As Range
Dim i As Byte
Dim dlg As Integer, dcl As Integer

Sheets("Planning JM").Cells.Delete

With Sheets("Planning")
    dlg = .Range("A" & .Rows.Count).End(xlUp).Row
    Set plage = .Range("A2:B" & dlg)
    i = 4
    Do While i <= .Cells(5, .Cells.Columns.Count).End(xlToLeft).Column
        If .Cells(5, i) <> 0 Then
            plage.Copy Sheets("Planning JM").Cells(2, dcl + 1)
            Sheets("Planning JM").Columns(dcl + 2).EntireColumn.AutoFit
            dcl = Sheets("Planning JM").Cells(5, Sheets("Planning JM").Cells.Columns.Count).End(xlToLeft).Column + 1
            .Range(.Cells(2, i), .Cells(dlg, i)).Copy Sheets("Planning JM").Cells(2, dcl)
            For j = dlg - 1 To 5 Step -1
                With Sheets("Planning JM")
                    If .Cells(j, dcl) = "" Then .Range(.Cells(j, dcl - 2), .Cells(j, dcl)).Delete Shift:=xlUp

                End With
            Next
            dcl = dcl + 1
        End If
        i = i + 1
    Loop
End With
End Sub

Crdlt

Super !

Et je suis désolé mais le fichier original étant un fichier officiel, je ne peux te le donner, je t'avais donc fait pour cela un fichier test...

Seulement dernier petit détail, il ne me supprime pas la dernière ligne vide (pièce "axe pm" sur les jours mardi-mercredi, ... alors qu'elle est pourtant bien vide (sauf pour le lundi)

Merci

bug1 bug2

re

En fait tous ces problèmes viennent du fait que le tableau du fichier posté ne correspond pas à ton fichier.

Essaie en remplaçant :

For j = dlg - 1 To 5 Step -1

par

For j = dlg To 5 Step -1

A te relire

C'est tout bon !

Je te remercie beaucoup pour ton aide, et te souhaite une très bonne après-midi !

Rechercher des sujets similaires à "adresse variable"