VBA Selection problématique 2

AGLAS

XLDnaute Nouveau
Bonjour,

Quelqu'un pourrait-il m'expliquer pourquoi, lorsque le code ci-dessous est exécuté, il plante systématiquement (Erreur 1004) sur la dernière ligne ? Parce que ça fait un paquet de temps que je cherche sans succès. Merci de m'aider à sortir de ce cul de sac !

Code:
 [size=4]
    Dim a As Integer
    
    NBL = Selection.Rows.Areas.Count
    'Si plusieurs lignes dans Sélection
    If NBL > 1 Then
    
        Dim formule As String

        'entête de formule (appel à une fonction perso)
        formule = '=PRECEDE(' & Cells(Selection.Areas(1).Row, 7).Address
        
        'construction de la suite de la formule 
        For i = 2 To (NBL - 1)
            formule = formule & ';' & Cells(Selection.Areas(i).Row, 7).Address
        Next i
        
        'fin de formule
         formule = formule & ')'
        
       'copie de la formule constituée
        Worksheets('Plan').Cells(Selection.Areas(NBL).Row, 8).Formula = formule
    End if
 
[/size]

Pour info, je cherche juste à copier une formule dans une cellule, sachant que la formule en question est fonction des lignes sélectionnées (au moins 2), le code est exécuté par clic sur sur un bouton.
 

Humansoft

XLDnaute Occasionnel
Bonjour,

Regarde bien la dernière ligne, elle comporte une erreur de transcription:

Dim a As Integer



NBL = Selection.Rows.Areas.Count
'Si plusieurs lignes dans Sélection
If NBL > 1 Then

Dim formule As String

'entête de formule (appel à une fonction perso)
formule = '=PRECEDE(' & Cells(Selection.Areas(1).Row, 7).Address & nbsp 'construction de la suite de la formule
For i = 2 To (NBL - 1)
formule = formule & ';' & Cells(Selection.Areas(i).Row, 7).Address
Next i

'fin de formule
formule = formule & ')'

'copie de la formule constituée
Worksheets('Plan').Cells(Selection.Areas(NBL).Row, 8).Formula = formule
End If


En effet, il y a un espace entre le a et le s du mot AERAS

Bon dimanche
 

AGLAS

XLDnaute Nouveau
Merci pour ta réponse Humansoft, mais l'espace en question ne figure pas dans le code, il s'agit d'un copier-coller malheureux, le pb vient d'ailleurs ; j'ai déjà eu à manipuler des formules dans des cellule via vba et leur construction était bien plus complexe, mais là je pige pas. J'ai réalisé un exemple assez succint qui fixe le pb, je l'ajoute en pièce jointe. Merci à toute suggestion.

Message édité par: AGLAS, à: 21/08/2005 19:22

Message édité par: AGLAS, à: 21/08/2005 19:24
 

AGLAS

XLDnaute Nouveau
Il y a une petite erreur dans la zone commentaire du classeur précédent, correction dans le fichier ci-joint
[file name=Simule_20050821193541.zip size=32491]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Simule_20050821193541.zip[/file]
 

Pièces jointes

  • Simule_20050821193541.zip
    31.7 KB · Affichages: 19

MichelXld

XLDnaute Barbatruc
bonsoir Aglas , @Christophe@ et Vincent

je ne sais pas si cela pourra t'aider mais tu peux faire un essai en remplaçant le point virgule dans cette ligne

Formule = Formule & ';' & Cells(Selection.Areas(i).Row, 7).Address

par une virgule

Formule = Formule & ',' & Cells(Selection.Areas(i).Row, 7).Address


bonne soiree
MichelXld
 

AGLAS

XLDnaute Nouveau
CA MAAAAARCHE ! Merci Michel, c'est trop fort ; imagine toi que j'ai passé une bonne partie de la nuit et de la journée à tester dans tous les sens alors que le truc était là, merci encore, je me sens d'un coup plus léger. J'adresse également toute ma reconnaissance à ceux qui sont à l'origine de ce forum et qui le font vivre. Bonneu nuité les enfants.

Michel... t'es trop fort.
 

Discussions similaires

Statistiques des forums

Discussions
312 452
Messages
2 088 533
Membres
103 879
dernier inscrit
JJB2