2010-11-06 23 views
0

Je suis en train d'avoir un Excel avec une colonne qui a des informations concernant l'offre. Chaque cellule aura une valeur commeCréation d'un Excel supplémentaire en utilisant la macro

Colonne: Nokia ([Mode1.Number], VIEUX)

Colonne: Motorola ([Mode1.Number], VIEUX)

Colonne: Motorola ([Mode2. numéro], NOUVEAU)

Colonne: Motorola ([Mode3.Number], VIEUX)

Colonne: Samsung ([Mode2.Number], NOUVEAU)

Je dois créer 2 exceller sur ce . On devrait avoir toutes les informations de l'OLD et le second Excel devrait avoir toutes les informations de NEW.

Ma sortie Excel doit contenir

Première Excel

Nokia ([Model1.Number])

Motorola ([Mode1.Number])

Motorola ([Mode3.Number ])

Deuxième Excel

Motorola ([Mode2.Nu] mbre])

Samsung ([Mode2.Number])

bien vouloir me aider .. Merci à l'avance ..

+0

quelqu'un peut répondre pour cela s'il vous plaît !!!! – Raj

+0

Avez-vous besoin de deux cahiers de travail ou feuilles de travail différents? Si c'est des livres de travail comment envisagez-vous de gérer les conflits de noms entre les différentes versions des livres? Quelle est la fréquence à laquelle vous prévoyez d'utiliser cette macro? Le nouveau livre peut-il supprimer le vieux livre? –

+0

salut .. désolé pour la réponse tardive. Ouais j'ai besoin de deux feuilles Excel séparées qui contiennent des données qui ont OLD dans celui-ci et un autre qui a NEW dans celui-ci. Je suis complètement nouveau à celui-ci. Pouvez-vous s'il vous plaît m'aider .. Merci d'avance. S'il vous plaît – Raj

Répondre

0

Sélectionnez les cellules contenant les données que vous souhaitez copier puis exécuter ce code

sub copystuff 
dim r as range 
dim tn as range 
im to as range 
dim wsNewTarget as worksheet 
dim wsOldTarget as worksheet 
dim wsSource as worksheet 
set wsSource = activesheet 
set wsNewtarget = activeworkbook.worksheets.add 
set wsoldtarget = activeworkbook.worksheets.add 
set tn = wsnewtarget.range("a1") 
set to =wsoldtarget.range("a1") 
for each r in wssource.selection 
    if imstr(r,"NEW")>0 then 
      tn=r 
      set tn = tn.offset(1,0) 
    else 
     to=r 
      set to = to.offset(1,0) 

    end if 
next r 
end sub 
+2

s'il vous plaît examiner la ligne 1 - Sub needs(), et la ligne 14 - imstr() n'est pas une fonction VBA valide. Aussi pourriez-vous expliquer comment dans votre code les chaînes suivantes sont placées au-dessous des autres au lieu de vous écraser les unes les autres. En général, je suggèrerais que le code affiché ici devrait fonctionner au moins par le biais de l'éditeur VBA, vérifier les erreurs de syntaxe et obtenir la bonne capitalisation. – MikeD

0
Sub SplitOldNew() 
Dim InRange As Range, OldRange As Range, NewRange As Range 
Dim Idx As Integer 

    Set InRange = Selection    ' select all cells to be split 
    Set OldRange = Worksheets("OLD").[A1] ' choose appropriate target entry points 
    Set NewRange = Worksheets("NEW").[A1] ' ... 
    Idx = 1        ' loop counter 

    Do While InRange(Idx, 1) <> "" 
     If InStr(1, InRange(Idx, 1), "OLD") <> 0 Then 
      DBInsert OldRange, InRange(Idx, 1) 
     Else 
      DBInsert NewRange, InRange(Idx, 1) 
     End If 
     Idx = Idx + 1 
    Loop 
End Sub 

Sub DBInsert(intoRange As Range, Arg As String) 
Dim Idx As Integer 

    Idx = 1        ' loop counter 
    Do While intoRange(Idx, 1) <> ""  ' find first blank row 
     Idx = Idx + 1 
    Loop 

    intoRange(Idx, 1) = Arg    ' write out 
End Sub