Je veux générer des données sage de fin de mois pour une période de début et de fin donnée; nombre de mois varie selon les candidats.
Les données suivantes doivent être générées par l'input de l'user et peuvent varier en nombre par candidat:
Colonne 'A' – fin de mois
Colonne 'B' – EMI
- Autorun Excel avec script VBA et insertion automatique d'un file basé sur un masque de date
- Insérer le résultat de la requête SQL dans Excel
- FROM mot-key non trouvé où prévu Erreur dans SQL
- Excel VBA – Importer à partir d'un classur fermé dans les mêmes dossiers
- VBA définit la valeur de la cellule après .ClearContents
Colonne 'C' – partie d'intérêt
Colonne 'D' – partie principale
etc.
Je veux également calculer la sum de chaque colonne à la fin et la ligne modifiant la taille de la feuille en fonction de la colonne "A" non des lignes. Aidez-nous.
Sub GenerateDates() Dim startDate As Date Dim endDate As Date Dim currentDate As Date startDate = Range("b4").Value endDate = Range("b8").Value currentDate = startDate Range("a17").Select Do Until currentDate = endDate ActiveCell.Value = currentDate ActiveCell.Offset(1, 0).Select 'currentDate = DateAdd("m", 1, currentDate) currentDate = DateSerial(Year(currentDate), Month(currentDate) + 2, 0) Loop End Sub
@Anil essaie ceci:
Sub GenerateDates() Dim startDate As Date Dim endDate As Date Dim currentDate As Date Dim cnt As Integer startDate = Range("b2").Value endDate = Range("b3").Value currentDate = startDate Range("a9").Select cnt = ActiveSheet.Range("E3") ActiveSheet.Range(ActiveSheet.Range("A10"), ActiveSheet.Cells(Rows.Count, Columns.Count)).ClearContents With ActiveSheet.Range(ActiveSheet.Range("A9"), ActiveSheet.Range("A9").End(xlToRight)) .Copy .Offset(1).Resize(cnt - 1).PasteSpecial xlPasteAll End With Application.CutCopyMode = False For i = 1 To Range("A8").End(xlToRight).Column - Range("A8").Column Range("A8").Offset(cnt + 1, i) = WorksheetFunction.Sum(Range("A8").Offset(1, i).Resize(cnt)) Next End Sub
Cliquez ici pour download la solution.
Dans l'excellence, il y a 5 colonnes: Fin du mois Date, EMI, Intérêts, Principal, Montant exceptionnel. Vous devez disposer de 4 champs de saisie: Période de début, Période de fin, Montant, Intérêt. Le button Calculer exécute la macro ci-dessus. La première ligne, c'est-à-dire la 9ème rangée, contient les formules et est copiée et collée pour le nombre de périodes pour get les dates et les calculs. À la fin, la sommation des colonnes est prise. J'espère que cela résoudra votre problème!
Essayez l'édition suivante en fonction de ce que je peux comprendre sur ce que vous voulez faire:
Sub GenerateDates() Dim startDate As Date Dim endDate As Date Dim currentDate As Date Dim ws as Worksheet Dim iRow As Long Set ws = Worksheets("Sheet1") 'or whatever name of sheet you have Set wbDesti = Workbooks.Open("C:\Users\...\DestinationFile.xlsx") ' <<< path to source workbook Set sh = wbDesti.Worksheets("Sheet1") 'Sheet in destination file 'automatically find the last row in Sheet A. iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _ SearchDirection:=xlPrevious, LookIn:=xlValues).row + 1 startDate = ws.cells(1,1).Value endDate = ws.cells(2,1).Value currentDate = startDate 'Range("a17").Select 'removed this to avoid .Select functions dim row as integer 'declare another variable for row... 'row = iRow 'Do Until currentDate = endDate 'ws.cells(row,1).value = currentDate 'row = row + 1 'currentDate = DateAdd("m", 1, currentDate) 'currentDate = DateSerial(Year(currentDate), Month(currentDate) + 2, 0) 'Loop Dim col as integer col = 2 'start with B Do until col = 4 sh.cells(1,col) = application.worksheetfunction.sum(ws.range("B"&10&":"&"B"&":"&60)) '***other codes goes here to transfer data same as above. col = col + 1 Loop wbDesti.quit Set sh = Nothing End Sub