2013-08-16 6 views
2

J'ai une feuille Excel sur laquelle je travaille, qui recherche les données d'une base de données en fonction de la date/heure. J'ai une ligne configurée avec la date et l'heure de début et je veux créer un script ou une macro qui copiera automatiquement cette ligne, je l'appellerai la ligne guide, et j'ajouterai x minutes jusqu'à ce qu'elle atteigne une heure de fin.Créer des cellules à partir de la date x et se terminant à la date y

Je dois copier toute la ligne de guide (ligne 5) ajouter x minutes (que vous pouvez définir dans la cellule D3) et les copier autant de fois que la valeur de temps (située dans la colonne G de chaque ligne) heure (située dans G2).

+1

Cela a beaucoup d'informations utiles: http://www.cpearson.com/Excel/MainPage.aspx – SeanC

+0

try [La feuille de calcul de John Walkenbach] (http://spreadsheetpage.com/) ou [Mr Excel] (http: // www .mrexcel.com /) ou [Utilisateur Excel] (http://www.exceluser.com/explore/index.htm) –

+0

jetez également un coup d'œil à [McGimpsey & Associates] (h ttp: //www.mcgimpsey.com/excel/index.html) ou [Ozgrid.com] (http://www.ozgrid.com/) –

Répondre

0

réponse de transfert ajoutée par OP à la question pendant la période OP ne peut pas poster propre réponse:

Voici le code que je travaille à partir des liens utiles à ma question:

Sub PopCells() 
' Define Variables 
Dim RowLast As Long 'Last Row with Data in it 
Dim CpRange As String 'Holds range of data to select when using a variable 

' Find the Last Row with Data in it 
RowLast = ActiveSheet.Cells(Rows.Count, "H").End(xlUp).Row 

' Clear out old range of data 
Let CpRange = "H6:ZZ" & RowLast 
ActiveSheet.Range(CpRange).Select 
Selection.ClearContents 

' Set the current row to the first row with Data 
CrRow = 5 

' Loop copies the current row, pastes it to the following row 
' And increments the time frame by the time increament value 
While Cells(CrRow, "H") <= [G2] 
    ' Select the entire current row 
    Let CpRange = "H" & CrRow & ":" & "ZZ" & CrRow 
    ActiveSheet.Range(CpRange).Select 

    'Copy Selected Row 
    Selection.Copy 

    ' Increment to the Next Row 
    CrRow = CrRow + 1 

    ' Select the entire current row 
    Let CpRange = "H" & CrRow & ":" & "ZZ" & CrRow 
    ActiveSheet.Range(CpRange).Select 
    ' Paste in copied row 
    ActiveSheet.Paste 

    ' Update time 
    ActiveSheet.Cells(CrRow, "H") = ActiveSheet.Cells(CrRow - 1, "H") + [$D$3]/1440 
Wend 


End Sub 
+0

@Abishur - Je crains de ne pas savoir si c'est une solution finale ou non. Demandez-vous d'aider à l'améliorer ou est-ce que cela devrait être considéré comme la réponse telle qu'elle est? – Jeeped

+1

Ceci est la réponse finale, il faisait à l'origine partie du message original. J'ai été capable de trouver la réponse à partir des commentaires à l'OP, mais je n'ai pas pu poster une réponse parce que j'étais nouveau sur le site et pas assez de temps s'était écoulé depuis que j'ai d'abord posé la question. L'utilisateur @pnuts a été assez gentil pour le déplacer dans un poste unique pour moi. – Abishur

Questions connexes