Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$ba4acef3@reader.news.orange.fr...
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$ba4acef3@reader.news.orange.fr...
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$ba4acef3@reader.news.orange.fr...
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
j5vemj$b6h$1@speranza.aioe.org...
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$ba4acef3@reader.news.orange.fr...
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" a écrit dans le message de news:
j61p27$shn$'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
j61p27$shn$1@speranza.aioe.org...
'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$ba4acef3@reader.news.orange.fr...
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
j5vemj$b6h$1@speranza.aioe.org...
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$ba4acef3@reader.news.orange.fr...
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" a écrit dans le message de news:
j61p27$shn$'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" a écrit dans le message de news:
j61p27$shn$'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
j61p27$shn$1@speranza.aioe.org...
'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$ba4acef3@reader.news.orange.fr...
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
j5vemj$b6h$1@speranza.aioe.org...
Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$ba4acef3@reader.news.orange.fr...
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance
merci michel c est super
exactement ce que je cherchais
"MichD" a écrit dans le message de news:
j61p27$shn$'----------------------------------------
Sub test()
Dim LeTout As String
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
With Feuil1
For Each Are In Arr
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each C In Rg
If Not IsEmpty(C) And _
Not IsEmpty(C.Offset(, NbCol)) Then
.Range("Z" & C.Row) = C.Value & C.Offset(, NbCol)
LeTout = LeTout & C.Value & C.Offset(, NbCol)
End If
Next
Next
.Range("Z" & .Range("Z65536").End(xlUp)(2).Row) = LeTout
End With
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e84384a$0$18794$
merci michel
ton code marche très bien, la concatenation se fait car j'ai changé en
colonne Z mais ensuite il faudrait que ca me contaner toute la colonne Z.
est ce possible?
j arrive pas à le faire en m'appuyant sur ton code.
merci d'avance.
"MichD" a écrit dans le message de news:
j5vemj$b6h$Bonjour,
Une façon de faire :
Tu adaptes le nom de la feuille.
Étant donné que tu n'as pas dit où tu voulais obtenir le résultat
Il est copié sur la même ligne, mais en colonne K
'----------------------------------------
Sub test()
Dim Arr(), NbCol As Integer
Arr = Array("B159:I207", "B212:I260")
For Each Are In Arr
With Feuil1
Set Rg = .Range(Are).Columns(1).Cells
NbCol = .Range(Are).Columns.Count - 1
For Each c In Rg
If Not IsEmpty(c) And _
Not IsEmpty(c.Offset(, NbCol)) Then
.Range("K" & c.Row) = c.Value & c.Offset(, NbCol)
End If
Next
End With
Next
End Sub
'----------------------------------------
MichD
------------------------------------------
"steph b" a écrit dans le message de groupe de discussion :
4e832d40$0$30748$
bonjour
j ai un onglet sous excel 2003 nommé REP
il y a deux plages de cellules:
une plage allant de B159:I207
une plage allant de B212:I260
mon probleme est de pouvoir concatener seulement les cellules B et I
lignes
par lignes dans ces deux plages et que si et seulement si il y a un
caratere
dans la cellule B de ces plages.
ce qui donnerait par exemple
pour la plage B159 : I207
b159 & i 159 retour chariot
b160 & i160 retour chariot
b164 &i164 retour chariot
si b161- b162- b163 vides
et ainsi de suite
merci d avance