2017-08-31 2 views
0

J'ai dû résoudre un problème Excel avec VBA aujourd'hui mais je me sens comme un noob. Mes exigences sont vraiment simples. Mais je suis en quelque sorte en ligne.VBA: routine de copie schématique

Je voudrais ajouter à chaque ligne existante, quelques variantes sur une feuille supplémentaire.

Check out the scheme here

Comment est-ce possible? Quelqu'un peut-il m'aider à pls?

Merci pour vos commentaires et votre aide.

Salutations eXocode

La solution a été:

`Sous CopyData()

RowInSheet3 = 1 

For RowInSheet1 = 1 To Sheets(1).Range("A1").SpecialCells(xlCellTypeLastCell).Row 
    Sheets(3).Cells(RowInSheet3, 1) = Sheets(1).Cells(RowInSheet1, 1) 
    RowInSheet3 = RowInSheet3 + 1 


    For RowInSheet2 = 1 To Sheets(2).Range("A1").SpecialCells(xlCellTypeLastCell).Row 
     Sheets(3).Cells(RowInSheet3, 1) = Sheets(2).Cells(RowInSheet2, 1) 
     Sheets(3).Cells(RowInSheet3, 2) = Sheets(2).Cells(RowInSheet2, 2) 
     RowInSheet3 = RowInSheet3 + 1 
    Next 

Next 

Fin Sub`

+0

Copiez les données de feuille Var dans un tableau. ..... faites défiler les cellules dans la feuille d'entrée .... pour chaque itération de la boucle, copiez une cellule de la feuille d'entrée suivie du tableau. – jsotola

Répondre

1

Voici un moyen simple de le faire; vous devrez ajuster les gammes à vos besoins, mais l'algorithme de base devrait être ce que vous recherchez:

Sub CopyData() 

    RowInSheet3 = 1 

    For RowInSheet1 = 1 To Sheets(1).Range("A1").SpecialCells(xlCellTypeLastCell).Row 
     Sheets(3).Cells(RowInSheet3, 1) = Sheets(1).Cells(RowInSheet1, 1) 
     RowInSheet3 = RowInSheet3 + 1 


     For RowInSheet2 = 1 To Sheets(2).Range("A1").SpecialCells(xlCellTypeLastCell).Row 
      Sheets(3).Cells(RowInSheet3, 1) = Sheets(2).Cells(RowInSheet2, 1) 
      Sheets(3).Cells(RowInSheet3, 2) = Sheets(2).Cells(RowInSheet2, 2) 
      RowInSheet3 = RowInSheet3 + 1 
     Next 

    Next 

End Sub 
+0

Cela semble incroyable. Si je ne sais pas combien d'entrées je veux avoir dans mon "Entry-Sheet", je ne peux probablement pas utiliser le limiteur .Range ("A1: A10") ... Comment puis-je éviter cela ...? Simplement avec ("A: A")? – eXocode

+0

J'ai ajouté le support pour trouver la dernière cellule dans sheet1 et sheet2 automatiquement. – JensS

+0

Hey JensS maintenant j'ai le temps d'essayer votre script et ça marche! Merci beaucoup .. <3 J'ai obtenu la première entrée de la feuille 1 avec toutes les variables de la feuille 2 dans ma feuille de résultat. Parfait, c'est exactement ce à quoi je m'attendais. Mais le script ne continue pas automatiquement pour Entry2, Entry 3 et ainsi de suite .. Comment puis-je mettre votre logique dans une boucle qui répète cette fonction pour toutes les entrées de variables sur la feuille 1? – eXocode