La macro ne fonctionne plus pour la fin des données

Bonjour

J'ai un problème avec mon tableau il refuse de mettre en majuscule les noms et les prénoms à partir de la ligne 1888.

Ci-joint le tableau Excel sous 2007

12saisie-1831-1900.zip (526.65 Ko)

Pouvez-vous m'aider car je n'y comprends rien

Cordialement

Claude

Bonjour,

Il manque une ligne de test dans votre macro de mise en forme, ici précédée d'une ligne d'astérisques

    [T_data].Item(i, 11) = UCase([T_data].Item(i, 11)) 'Nom MÈRE
    If [T_data].Item(i, 12) <> "" Then '*********************************
        a = Split([T_data].Item(i, 12), " ") 'Prénom MÈRE
        mavar = ""
        For j = LBound(a) To UBound(a)
          mavar = mavar & UCase(Left(a(j), 1)) & LCase(Mid(a(j), 2)) & " "
        Next
        [T_data].Item(i, 12) = Trim(mavar)
    End If
    

Cdlt

Bonjour à vous

Ou alors, juste après le Dim, un :

On Error Resume Next

mais moins propre que ce qu'à donné Arturo83

Re

j'ai copié dans la macro le complément mais j'ai comme message "Erreur de compilation Next sans For

Pouvez vous m'intégrer votre complément directement dans la macro car je n'y comprend rien en macro ?

Merci

Sub miseenforme()
Dim i As Long, a, j As Byte, mavar As String
For i = 1 To [T_data].Rows.Count
[T_data].Item(i, 2) = UCase([T_data].Item(i, 2)) 'NOM
If [T_data].Item(i, 3) <> "" Then
a = Split([T_data].Item(i, 3), " ") 'Prénom
mavar = ""
For j = LBound(a) To UBound(a)
mavar = mavar & UCase(Left(a(j), 1)) & LCase(Mid(a(j), 2)) & " "
Next
[T_data].Item(i, 3) = Trim(mavar)
End If
[T_data].Item(i, 4) = UCase([T_data].Item(i, 4)) 'Sexe
[T_data].Item(i, 8) = UCase([T_data].Item(i, 8)) 'Nom PÈRE

If [T_data].Item(i, 9) <> "" Then
a = Split([T_data].Item(i, 9), " ") 'Prénom PÈRE
mavar = ""
For j = LBound(a) To UBound(a)
mavar = mavar & UCase(Left(a(j), 1)) & LCase(Mid(a(j), 2)) & " "
Next
[T_data].Item(i, 9) = Trim(mavar)
End If

[T_data].Item(i, 11) = UCase([T_data].Item(i, 11)) 'Nom MÈRE

If [T_data].Item(i, 12) <> "" Then
a = Split([T_data].Item(i, 12), " ") 'Prénom MÈRE
mavar = ""
For j = LBound(a) To UBound(a)
mavar = mavar & UCase(Left(a(j), 1)) & LCase(Mid(a(j), 2)) & " "
Next
[T_data].Item(i, 12) = Trim(mavar)

[T_data].Item(i, 13) = UCase([T_data].Item(i, 13)) 'Type acte
[T_data].Item(i, 14) = UCase([T_data].Item(i, 14)) 'Type précis

' Sexe féminin
If [T_data].Item(i, 4) = "F" Then
Select Case [T_data].Item(i, 10)
Case "hier": [T_data].Item(i, 15) = "Née Hier"
Case "ce jour": [T_data].Item(i, 15) = "Née ce jour"
Case Else
If IsDate([T_data].Item(i, 10)) Then
[T_data].Item(i, 15) = "Née le " & Format([T_data].Item(i, 10), "dd/mm/yyyy")
End If
End Select

' Sexe masculin
ElseIf [T_data].Item(i, 4) = "M" Then
Select Case [T_data].Item(i, 10)
Case "hier": [T_data].Item(i, 15) = "Né Hier"
Case "ce jour": [T_data].Item(i, 15) = "Né ce jour"
Case Else
If IsDate([T_data].Item(i, 10)) Then
[T_data].Item(i, 15) = "Né le " & Format([T_data].Item(i, 10), "dd/mm/yyyy")
End If
End Select
End If

' Ajout du suffixe " - Jumeau" si présent
If Len(Trim(UCase([T_data].Item(i, 16)))) > 0 Then
[T_data].Item(i, 15) = [T_data].Item(i, 15) & "-" & [T_data].Item(i, 16)
End If

Next i
End Sub

capture

Il manque le "End if" , reprenez le bout de code que j'ai mis plus haut.

Bonjour

Ci-joint fichier rectifié

10saisie-1831-1900.zip (614.83 Ko)

Merci à vous deux

Mais comment se fait il que la macro ne fonctionnait plus sachant que je ne vais pas y toucher?

Cordialement

Claude

visiblement des lignes ont été ajoutées mais avec des cellules vides, ce qui générait une erreur exemple cellule L1902, il manquait la ligne de code traitant ce cas de figure pour les Mères alors que pour les pères cela avait été prévu.

Si le résultat correspond à vos attentes, veuillez passer le post en "Résolu" . Merci

Si les solutions te conviennent passes le sujet en résolu

Crdlt

Rechercher des sujets similaires à "macro fonctionne fin donnees"