Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA code urgently needed!


Hello,

I am utterly despaired, as I have to come up with a weird VBA code
although I have never used VBA before...

Here is the the thing:

I Have once Excel sheet (Sheet1.xls) containing two columns: Column A
contains the names of different persons, , & Column B the countries of
the respective persons in alphabetical order; e.g.

ColumnA ColumnB
Pablo Argentina
Estefan Argentina
Michael Austria
Stephanie Austria
Franz Austria
Jerome Belgium
Clara Belgium
Alvaro Chile
Mikele Chile
Emanuele Chile

However, the # of names per country, as well as the countries
themselves, vary from time to time, so the list is not constant!


I know have to export this list in a second worksheet (Sheet2.xls) such
that the countries are displayed as headers in ColumnA, and the
corresponding names are displayed below, whereby the alpabetical order
of the countries is kept and the countryname and the last preceeding
name of a person are separated by an empty row:

ColumnA (Sheet2.xls)
Argentina
Pablo
Estefan

Austria
Michael
Stephan
Franz

Belgium
Jerome
Clara

Chile
etc

The problem is that I have to come up with a Macro that recognises the
country name, displays it as a header, lists all the respectvie names
following this header, then recognises when a new country name comes
up, inserts an empty row, followed by the name of the new country and
the names of the people from this country...
As I said, so sometimes there may be just one name for a given country,
some times 5 names, and some times no names at all!

Any ideas??? Any help is mostly appreciated!
Many thanx!


--
burk
------------------------------------------------------------------------
burk's Profile: http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default VBA code urgently needed!

Sub Test()
Dim iLastRow As Long
Dim i As Long
Dim j As Long

iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
With Worksheets("Sheet2")
Range("B1").Copy .Range("A1")
Range("A1").Copy .Range("A2")
j = 1
For i = 2 To iLastRow
If Cells(i, "B").Value = Cells(i - 1, "B").Value Then
Cells(i, "A").Copy .Cells(.Cells(1, j).End(xlDown).Row + 1,
j)
Else
j = j + 1
Cells(i, "B").Copy .Cells(1, j)
Cells(i, "A").Copy .Cells(2, j)
End If
Next i
End With
End Sub

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"burk" wrote in message
...

Hello,

I am utterly despaired, as I have to come up with a weird VBA code
although I have never used VBA before...

Here is the the thing:

I Have once Excel sheet (Sheet1.xls) containing two columns: Column A
contains the names of different persons, , & Column B the countries of
the respective persons in alphabetical order; e.g.

ColumnA ColumnB
Pablo Argentina
Estefan Argentina
Michael Austria
Stephanie Austria
Franz Austria
Jerome Belgium
Clara Belgium
Alvaro Chile
Mikele Chile
Emanuele Chile

However, the # of names per country, as well as the countries
themselves, vary from time to time, so the list is not constant!


I know have to export this list in a second worksheet (Sheet2.xls) such
that the countries are displayed as headers in ColumnA, and the
corresponding names are displayed below, whereby the alpabetical order
of the countries is kept and the countryname and the last preceeding
name of a person are separated by an empty row:

ColumnA (Sheet2.xls)
Argentina
Pablo
Estefan

Austria
Michael
Stephan
Franz

Belgium
Jerome
Clara

Chile
etc

The problem is that I have to come up with a Macro that recognises the
country name, displays it as a header, lists all the respectvie names
following this header, then recognises when a new country name comes
up, inserts an empty row, followed by the name of the new country and
the names of the people from this country...
As I said, so sometimes there may be just one name for a given country,
some times 5 names, and some times no names at all!

Any ideas??? Any help is mostly appreciated!
Many thanx!


--
burk
------------------------------------------------------------------------
burk's Profile:

http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default VBA code urgently needed!

Change startrow to refer to the first row containing your data. Adjust
worksheet names as necessary.

Option Explicit
Sub NewList()
Dim rng As Range, cell As Range
Dim startrow As Long, sh As Worksheet
Dim rw As Long
startrow = 2
Set sh = Worksheets("Sheet2")
rw = 1
With Worksheets("Sheet1")
Set rng = .Range(.Cells(startrow, 1), _
.Cells(startrow, 1).End(xlDown))
End With
For Each cell In rng
If cell.Row = 1 Or cell.Offset(0, 1) < _
cell.Offset(-1, 1) Then
If rw < 1 Then rw = rw + 1
sh.Cells(rw, 1) = cell.Offset(0, 1)
rw = rw + 1
End If
sh.Cells(rw, 1).Value = cell.Value
rw = rw + 1
Next
End Sub

--
Regards,
Tom Ogilvy

"burk" wrote:


Hello,

I am utterly despaired, as I have to come up with a weird VBA code
although I have never used VBA before...

Here is the the thing:

I Have once Excel sheet (Sheet1.xls) containing two columns: Column A
contains the names of different persons, , & Column B the countries of
the respective persons in alphabetical order; e.g.

ColumnA ColumnB
Pablo Argentina
Estefan Argentina
Michael Austria
Stephanie Austria
Franz Austria
Jerome Belgium
Clara Belgium
Alvaro Chile
Mikele Chile
Emanuele Chile

However, the # of names per country, as well as the countries
themselves, vary from time to time, so the list is not constant!


I know have to export this list in a second worksheet (Sheet2.xls) such
that the countries are displayed as headers in ColumnA, and the
corresponding names are displayed below, whereby the alpabetical order
of the countries is kept and the countryname and the last preceeding
name of a person are separated by an empty row:

ColumnA (Sheet2.xls)
Argentina
Pablo
Estefan

Austria
Michael
Stephan
Franz

Belgium
Jerome
Clara

Chile
etc

The problem is that I have to come up with a Macro that recognises the
country name, displays it as a header, lists all the respectvie names
following this header, then recognises when a new country name comes
up, inserts an empty row, followed by the name of the new country and
the names of the people from this country...
As I said, so sometimes there may be just one name for a given country,
some times 5 names, and some times no names at all!

Any ideas??? Any help is mostly appreciated!
Many thanx!


--
burk
------------------------------------------------------------------------
burk's Profile: http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA code urgently needed!


Thank you so much for your kind replies! Tom's code is almost exactl
what I need, there is just one little issue: the code as it is does no
display the name of the very first country (eg Argentina in the exampl
I gave earlier), but starts immediately with the names of the peopl
from that country

E.g. it gives the following output

Pablo
Estefan

Austria
Michael
Stephan
Franz
etc.....

Instead of

Argentina
Pablo
Estefan

Austria
Michael
Stephan


Any ideas how to fix this using Tom's code? Many thanx

--
bur
-----------------------------------------------------------------------
burk's Profile: http://www.excelforum.com/member.php...fo&userid=3695
View this thread: http://www.excelforum.com/showthread.php?threadid=56670

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default VBA code urgently needed!

Did you try mine?

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"burk" wrote in message
...

Thank you so much for your kind replies! Tom's code is almost exactly
what I need, there is just one little issue: the code as it is does not
display the name of the very first country (eg Argentina in the example
I gave earlier), but starts immediately with the names of the people
from that country

E.g. it gives the following output

Pablo
Estefan

Austria
Michael
Stephan
Franz
etc.....

Instead of

Argentina
Pablo
Estefan

Austria
Michael
Stephan


Any ideas how to fix this using Tom's code? Many thanx!


--
burk
------------------------------------------------------------------------
burk's Profile:

http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA code urgently needed!


Hi Bob,

yes I tried yours - many thanks indeed! But the problem is that you
code gives me all the names in different columns - I need them all i
one and the same column (column A) - Do you have any idea of how t
modify your code accordingly, or else of how to modify Tom's code s
that it also copies the very first country name?

Many thankx

--
bur
-----------------------------------------------------------------------
burk's Profile: http://www.excelforum.com/member.php...fo&userid=3695
View this thread: http://www.excelforum.com/showthread.php?threadid=56670

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA code urgently needed!


Hello Tom!

thanx for your reply. Yes, I tried setting the start row to 1 in the
"startrow =" argument, but I came up with the following error message"

"Run-time error '1004'


Once I click on "Debug", it highlights the following statement within
the code that you gave me:

If cell.Row = 1 Or cell.Offset(0, 1) < _
cell.Offset(-1, 1) Then

Specifically. it says that "cell.Offset(-1, 1) = <Application-defined
or object-defined error


--
burk
------------------------------------------------------------------------
burk's Profile: http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702

  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default VBA code urgently needed!

How about this then

Sub Test()
Dim iLastRow As Long
Dim i As Long
Dim j As Long

iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
With Worksheets("Sheet2")
j = 2
Range("B1").Copy .Range("A1")
Range("A1").Copy .Range("A2")
For i = 2 To iLastRow
j = j + 1
If Cells(i, "B").Value = Cells(i - 1, "B").Value Then
Cells(i, "A").Copy .Cells(j, "A")
Else
j = j + 1
Cells(i, "B").Copy .Cells(j, "A")
j = j + 1
Cells(i, "A").Copy .Cells(j, "A")
End If
Next i
End With
End Sub


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"burk" wrote in message
...

Hi Bob,

yes I tried yours - many thanks indeed! But the problem is that your
code gives me all the names in different columns - I need them all in
one and the same column (column A) - Do you have any idea of how to
modify your code accordingly, or else of how to modify Tom's code so
that it also copies the very first country name?

Many thankx!


--
burk
------------------------------------------------------------------------
burk's Profile:

http://www.excelforum.com/member.php...o&userid=36955
View this thread: http://www.excelforum.com/showthread...hreadid=566702



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help needed urgently AndyW Excel Worksheet Functions 4 May 30th 10 05:07 PM
Help needed urgently..:( harveen Excel Worksheet Functions 8 February 10th 09 09:19 PM
help needed urgently wardah Excel Worksheet Functions 2 October 4th 06 12:02 PM
I'm a newbie, urgently help needed eileen Excel Programming 2 February 1st 06 05:23 PM
Help Needed Urgently John Excel Worksheet Functions 2 September 13th 05 02:58 PM


All times are GMT +1. The time now is 06:56 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"