Problème au niveau d'une macro

Le_Goret -  
 Info -
Bonjour,

J'ai une erreur de "Variable bloc ou variable objet with non définie. C'est au niveau de:
If RgT(0, C).Value = "" Then Exit For
Set FeuiR = Worksheets.Add

Je débute au niveau de la programmation. Quelqu'un peut-il me traduire
If RgT(0, C).Value = "" Then Exit For

afin que je puisse déterminer l'objet à spécifier en qualificateur?

A voir également:

5 réponses

Info
 
Bonjour,

Il est difficile de traduire ton code puisqu'il est incomplet.

' Utiliser cette instruction pour déclaré les variable que tu utilise.
Option Explicit

Sub Essai()

    ' C ???
    ' RgT ???

    Dim C as Long

    For C = 0 To 9

        ' Si la valeur = RIEN, sort de la boucle For    
        If Range(0, C).Value = "" Then Exit For
        
        Set FeuiR = Worksheets.Add

        ' ...
        
    Next c

End Sub


RgT(0, c) Ressemble à la syntaxe [ Cells(0,C).value ],
toutefois, l'instruction CELLS n'accepte pas le 0.

Ce serait plutôt [ Cells(1,C).Value) ]

Info
0
Le_Goret
 
Salut Info, Voici ma macro en entier. En fait je cherche à créer des onglets à partir d'une feuille source qui reprendrait un tableau (colonne 1 à 14) plus une colonne en particulier (colonne 15 puis colonne 16 puis colonne 17 ....). En fait Rgt(O,C) permet de terminer la boucle for c'est à dire d'arrêter de dupliquer. C'est bien cà? J'essaie de remplacer Rgt(O,c) par [ Cells(1,C).Value) ].

Private Sub Workbook_Open()
Dim RgT As Range, N As Long, C As Long, FeuiR As Worksheet
For C = 15 To 256
If RgT(0, C).Value = "" Then Exit For
Set FeuiR = Worksheets.Add
FeuiR.Name = RgT(0, C).Value
Feuil1.Columns(1).Resize(, 14).Copy FeuiR.Columns(1)
Feuil1.Columns(C).Copy FeuiR.Columns(15)
Next C
End Sub
0
Le_Goret
 
Au fait pourquoi RgT(0,C) ne marchait-il pas? Et merci à toi info pour ton aide!!!
0
Le_Goret
 
Ca y est j'ai trouve, ca marche:
Private Sub CommandButton1_Click()
Dim RgT As String, N As Long, C As Long, FeuiR As Worksheet
For C = 15 To 256
RgT = Cells(6, C).Value
If RgT = "" Then
Exit For
End If
Set FeuiR = Worksheets.Add
FeuiR.Name = RgT
Feuil1.Columns(1).Resize(, 14).Copy FeuiR.Columns(1)
Feuil1.Columns(C).Copy FeuiR.Columns(15)
Next C
End Sub

En fait je définis mon Rgt au début avec RgT = Cells(6, C).Value
Lorsque ma cellule de la ligne 6 devient vide je sors bien de ma boucle for.

Merci pour votre aide!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Info
 
re:

Bienvenue :-)

Désolé de n'avoir pas pu suivre de plus près votre évolution.

Cdt

Info
0