Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que
le résultat débute en di17 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FxM
Si j'ai bien tout compris ... (Coluche)
@+ FxM
Sub test() Dim plage As Range, debut As Range, cell As Range Dim zone As Range, init As Range Dim comb As Integer, deca As Integer, vide As Integer
Set plage = Range("DG17:DG26") Set debut = Range("DI17")
For Each cell In plage If cell <> "" Then 'zone s'étend cellule par cellule sur plage (1 puis 2 puis 3 ..) Set zone = Range(plage(1).Address & ":" & cell.Address)
'comb = combien de cellules à remplir comb = cell.Value
'decaler des cellules remplies ... deca = Application.WorksheetFunction.Sum(zone) - com '+ les cellules vides vide = zone.Cells.Count - 1
'cellule initiale pur le nouveau remplissage Set init = debut.Offset(deca + vide)
'remplir de puis init sur comb cellules 'avec la valeur prise à coté de cell init.Resize(comb, 1) = cell.Offset(0, -1).Value
End If Next cell
Set plage = Nothing Set debut = Nothing Set zone = Nothing Set init = Nothing End Sub
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Si j'ai bien tout compris ... (Coluche)
@+
FxM
Sub test()
Dim plage As Range, debut As Range, cell As Range
Dim zone As Range, init As Range
Dim comb As Integer, deca As Integer, vide As Integer
Set plage = Range("DG17:DG26")
Set debut = Range("DI17")
For Each cell In plage
If cell <> "" Then
'zone s'étend cellule par cellule sur plage (1 puis 2 puis 3 ..)
Set zone = Range(plage(1).Address & ":" & cell.Address)
'comb = combien de cellules à remplir
comb = cell.Value
'decaler des cellules remplies ...
deca = Application.WorksheetFunction.Sum(zone) - com
'+ les cellules vides
vide = zone.Cells.Count - 1
'cellule initiale pur le nouveau remplissage
Set init = debut.Offset(deca + vide)
'remplir de puis init sur comb cellules
'avec la valeur prise à coté de cell
init.Resize(comb, 1) = cell.Offset(0, -1).Value
End If
Next cell
Set plage = Nothing
Set debut = Nothing
Set zone = Nothing
Set init = Nothing
End Sub
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que
le résultat débute en di17 ?
Sub test() Dim plage As Range, debut As Range, cell As Range Dim zone As Range, init As Range Dim comb As Integer, deca As Integer, vide As Integer
Set plage = Range("DG17:DG26") Set debut = Range("DI17")
For Each cell In plage If cell <> "" Then 'zone s'étend cellule par cellule sur plage (1 puis 2 puis 3 ..) Set zone = Range(plage(1).Address & ":" & cell.Address)
'comb = combien de cellules à remplir comb = cell.Value
'decaler des cellules remplies ... deca = Application.WorksheetFunction.Sum(zone) - com '+ les cellules vides vide = zone.Cells.Count - 1
'cellule initiale pur le nouveau remplissage Set init = debut.Offset(deca + vide)
'remplir de puis init sur comb cellules 'avec la valeur prise à coté de cell init.Resize(comb, 1) = cell.Offset(0, -1).Value
End If Next cell
Set plage = Nothing Set debut = Nothing Set zone = Nothing Set init = Nothing End Sub
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
JB
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Bonjour,
ligne = 0
For Each c In [DG17:DG26]
For i = 1 To c
[DI1].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que
le résultat débute en di17 ?
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
JB
+ court:
ligne = 0 For Each c In [DG17:DG26] Range("DI1").Offset(ligne, 0).Resize(c, 1).Value = c.Offset(0, -1) ligne = ligne + c + 1 Next c
JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
+ court:
ligne = 0
For Each c In [DG17:DG26]
Range("DI1").Offset(ligne, 0).Resize(c, 1).Value = c.Offset(0,
-1)
ligne = ligne + c + 1
Next c
JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que
le résultat débute en di17 ?
ligne = 0 For Each c In [DG17:DG26] Range("DI1").Offset(ligne, 0).Resize(c, 1).Value = c.Offset(0, -1) ligne = ligne + c + 1 Next c
JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code su ivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement qua nd le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhait e que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Nicoh
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait.
Le message est le suivant :
Erreur d'éxécution '13'
Incompatibilité de type.
Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la
macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment
puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer
la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0
For Each c In [DG17:DG26]
For i = 1 To c
[DI1].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que
le résultat débute en di17 ?
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
JB
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui appar ait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxé cuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Co mment puis-je faire, sachant que je voudrais affecter un autre bouton pour effa cer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le cod e suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vertical ement en di les chiffres de la colonne df. Après chaque changement de chi ffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je sou haite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui appar ait.
Le message est le suivant :
Erreur d'éxécution '13'
Incompatibilité de type.
Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxé cuter la
macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Co mment
puis-je faire, sachant que je voudrais affecter un autre bouton pour effa cer
la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0
For Each c In [DG17:DG26]
For i = 1 To c
[DI1].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le cod e suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vertical ement
en di les chiffres de la colonne df. Après chaque changement de chi ffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je sou haite que
le résultat débute en di17 ?
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui appar ait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxé cuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Co mment puis-je faire, sachant que je voudrais affecter un autre bouton pour effa cer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le cod e suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vertical ement en di les chiffres de la colonne df. Après chaque changement de chi ffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je sou haite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Nicoh
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait.
Le message est le suivant :
Erreur d'éxécution '13'
Incompatibilité de type.
Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la
macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment
puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer
la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0
For Each c In [DG17:DG26]
For i = 1 To c
[DI1].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que
le résultat débute en di17 ?
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui apparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour éxécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire. Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) verticalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère uniquement quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vide au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
JB
Dans options, il y a répondre à l'auteur.
JB
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui a pparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour é xécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire . Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vert icalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère unique ment quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vid e au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?
quelqu'un a-t-il une solution à me proposer ?
Merci,
nicoh
Dans options, il y a répondre à l'auteur.
JB
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui a pparait.
Le message est le suivant :
Erreur d'éxécution '13'
Incompatibilité de type.
Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour é xécuter la
macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire . Comment
puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer
la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0
For Each c In [DG17:DG26]
For i = 1 To c
[DI1].Offset(ligne, 0) = c.Offset(0, -1)
ligne = ligne + 1
Next i
ligne = ligne + 1
If ligne > 65000 Then Stop
Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol()
Dim c As Range, i As Long, cpt As Long
For Each c In [dg17:DG26].Cells
If cpt > 1 Then
If c <> c.Offset(-1, 0) Then cpt = cpt + 1
End If
For i = 1 To c
cpt = cpt + 1
Range("di" & cpt) = c.Offset(0, -1)
If cpt = 65536 Then _
MsgBox "Dépassement, arrêt": Exit Sub
Next i
Next c
End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vert icalement
en di les chiffres de la colonne df. Après chaque changement de chiffre il
doit y avoir une cellule vide. Or, la case vide s'insère unique ment quand le
nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vid e au
changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que
le résultat débute en di17 ?
Comment dois-je faire pour que tu aies accès à mon fichier ?
Bonjour,
Sur mon fichier, je ne vois le pb: http://cjoint.com/?llpqqhvz5A
JB
Bonjour JB,
Merci pour ta réponse, j'arrive au résultat escompté.
Par contre, en fin de réalisation de la macro j'ai une erreur qui a pparait. Le message est le suivant : Erreur d'éxécution '13' Incompatibilité de type. Comment éviter ce désagrément ?
Par ailleurs, j'ai affecté un bouton dans ma barre d'outil pour é xécuter la macro. Je souhaiterais pouvoir aussi effacer la macro si nécessaire . Comment puis-je faire, sachant que je voudrais affecter un autre bouton pour effacer la macro ?
Par avance merci
Nicoh
Bonjour,
ligne = 0 For Each c In [DG17:DG26] For i = 1 To c [DI1].Offset(ligne, 0) = c.Offset(0, -1) ligne = ligne + 1 Next i ligne = ligne + 1 If ligne > 65000 Then Stop Next c
Cordialement JB
Bonsoir à tous,
Grâce à lSteph (que je remercie encore une fois) j'utilise le code suivant :
Sub repCol() Dim c As Range, i As Long, cpt As Long For Each c In [dg17:DG26].Cells If cpt > 1 Then If c <> c.Offset(-1, 0) Then cpt = cpt + 1 End If For i = 1 To c cpt = cpt + 1 Range("di" & cpt) = c.Offset(0, -1) If cpt = 65536 Then _ MsgBox "Dépassement, arrêt": Exit Sub Next i Next c End Sub
Il s'agit de recopier un certain nombre fois (chiffre en dg) vert icalement en di les chiffres de la colonne df. Après chaque changement de chiffre il doit y avoir une cellule vide. Or, la case vide s'insère unique ment quand le nombre en dg n'est pas 1. Si c'est 1, il n'y a pas de cellule vid e au changement de chiffre.
Par ailleurs, le résultat en di commence à la cellule di1, je souhaite que le résultat débute en di17 ?