Macro fonctionnant partiellement

DjayDjay

XLDnaute Nouveau
Bonjour à tous
Mes connaissances en VBA étant "basiques", je ne comprends pas pourquoi ma macro ne fonctionne pas pour les "G(générations)" inférieures à 10.
La liste "Excel" est extraite de mon logiciel de généalogie.(sur le fichier joint il s'agit d'une généalogie démo)
J'essaie de transformer ce fichier en véritable fichier "Excel" afin que pour chaque individu, le numéro de sa génération soit sur la même ligne que les autres données.
Je suis "paumé"..
Si quelqu'un a une idée ..
D'avance merci
Salutations
 

Pièces jointes

  • ForumEXCEL.xlsm
    20.2 KB · Affichages: 30

vgendron

XLDnaute Barbatruc
Hello
voir ce code avec quelques commentaires

VB:
Sub generation()
Application.ScreenUpdating = False

' Mise en forme Génération-SOSA-PlusPlus

With Selection 'vérifier la sélection avant ???
    .MergeCells = False
End With


With Sheets("Onglet ORIGINAL")
    'compter le nombre de lignes
    nbligne = .Range("A" & .Rows.Count).End(xlUp).Row
    .Columns("B:C").Insert
    .Range("B1") = "Génération"
    .Range("C1") = "++"

For i = 2 To nbligne
    If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1), "G") > 0 Then 'le G peut il vraiment apparaitre n'importe où dans la chaine, ou c'est toujours le premier caractère ?
        numgen = CInt(WorksheetFunction.Substitute(ThisWorkbook.ActiveSheet.Cells(i, 1), "G", "")) 'on supprime le caractère G et on transforme le reste de la chaine en nombre
    End If
    .Range("B" & i) = numgen
    .Range("C" & i) = "Non"
    If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1), "++") > 0 Then
        .Range("C" & i) = "Oui"
    End If
Next i

For i = 2 To nbligne
    If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1), "G") > 0 Then 'le G peut il vraiment apparaitre n'importe où dans la chaine, ou c'est toujours le premier caractère ?
        .Rows(i).Delete Shift:=xlUp
    End If
Next

.Range("a1").Select
End With
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa